Part Number Hot Search : 
HY8N65T TIP127 X9601208 B23N15 C4891 075784 DD34A S10ML1X
Product Description
Full Text Search
 

To Download 82375SB Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  * other brands and names are the property of their respective owners. information in this document is provided in connection with intel products. intel assumes no liability whatsoever, including infringement of any patent or copyright, for sale and use of intel products except as provided in intel's terms and conditions of sale for such products. intel retains the right to make changes to these specifications at any time, without notice. microcomputer products may have minor variations to this specification known as errata. march 1996 copyright ? intel corporation, 1996 order number: 290477-004 82375eb/82375SB pci-eisa bridge (pceb) y provides the bridge between the pci local bus and eisa bus y 100% pci and eisa compatible e pci and eisa master/slave interface e directly drives 10 pci loads and 8 eisa slots e supports pci from 25 to 33 mhz y data buffers improve performance e four 32-bit pci-to-eisa posted write buffers e four 16-byte eisa-to-pci read/write line buffers e eisa-to-pci read prefetch e eisa-to-pci and pci-to-eisa write posting y data buffer management ensures data coherency e flush posted write buffers e flush or invalidate line buffers e system-wide data buffer coherency control y burst transfers on both the pci and eisa buses y 32-bit data paths y integrated eisa data swap buffers y arbitration for pci devices e supports six pci masters e fixed, rotating, or a combination of the two e supports external pci arbiter and arbiter cascading y pci and eisa address decoding and mapping e positive decode of main memory areas (memcs y generation) e four programmable pci memory space regions e four programmable pci i/o space regions y programmable main memory address decoding e main memory sizes up to 512 mbytes e access attributes for 15 memory segments in first 1 mbyte of main memory e programmable main memory hole y integrated 16-bit bios timer y only available as part of a supported kit the 82375eb/sb pci-eisa bridge (pceb) provides the master/slave functions on both the pci local bus and the eisa bus. functioning as a bridge between the pci and eisa buses, the pceb provides the address and data paths, bus controls, and bus protocol translation for pci-to-eisa and eisa-to-pci transfers. exten- sive data buffering in both directions increases system performance by maximizing pci and eisa bus efficien- cy and allowing concurrency on the two buses. the pceb's buffer management mechanism ensures data coherency. the pceb integrates central bus control functions including a programmable bus arbiter for the pci bus and eisa data swap buffers for the eisa bus. integrated system functions include pci parity genera- tion, system error reporting, and programmable pci and eisa memory and i/o address space mapping and decoding. the pceb also contains a bios timer that can be used to implement timing loops. the pceb is intended to be used with the eisa system component (esc) to provide an eisa i/o subsystem interface. this document describes both the 82375eb and 82375SB components. unshaded areas describe the 82375eb. shaded areas, like this one, describe the 82375SB operations that differ from the 82375eb.
82375eb/sb 290477 1 pceb simplified block diagram 2
82375eb/82375SB pci-eisa bridge (pceb) contents page 1.0 architectural overview 8 1.1 pceb overview 10 1.2 esc overview 12 2.0 signal description 14 2.1 pci bus interface signals 15 2.2 pci arbiter signals 18 2.3 address decoder signals 19 2.4 eisa interface signals 20 2.5 isa interface signals 23 2.6 pceb/esc interface signals 24 2.7 test signal 26 3.0 register description 27 3.1 configuration registers 27 3.1.1 videvendor identification register 29 3.1.2 didedevice identification register 29 3.1.3 pcicmdepci command register 30 3.1.4 pcistsepci status register 31 3.1.5 riderevision identification register 31 3.1.6 mltemaster latency timer register 32 3.1.7 pciconepci control register 32 3.1.8 arbconepci arbiter control register 33 3.1.9 arbpriepci arbiter priority control register 34 3.1.10 arbprixepci arbiter priority control extension register 35 3.1.11 mcsconememcs y control register 35 3.1.12 mcsbohememcs y bottom of hole register 36 3.1.13 mcstohememcs y top of hole register 37 3.1.14 mcstomememcs y top of memory register 37 3.1.15 eadc1eeisa address decode control 1 register 38 3.1.16 iorteisa i/o recovery timer register 39 3.1.17 mar1ememcs y attribute register y 1 40 3.1.18 mar2ememcs y attribute register y 2 40 3.1.19 mar3ememcs y attribute register y 3 41 3.1.20 pdconepci decode control register 42 3.1.21 eadc2eeisa address decode control extension register 43 3
contents page 3.1.22 epmraeeisa-to-pci memory region attributes register 44 3.1.23 memregn [ 4:1 ] eeisa-to-pci memory region address registers 45 3.1.24 ioregn [ 4:1 ] eeisa-to-pci i/o region address registers 46 3.1.25 btmrebios timer base address register 46 3.1.26 eltcreeisa latency timer control register 47 3.2 i/o registers 47 3.2.1 biostmebios timer register 47 4.0 address decoding 48 4.1 pci cycle address decoding 50 4.1.1 memory space address decoding 51 4.1.1.1 main memory decoding (memcs y ) 51 4.1.1.2 bios memory space 54 4.1.1.3 subtractively and negatively decoded cycles to eisa 54 4.1.2 pceb configuration registers 56 4.1.3 pceb i/o registers 56 4.1.4 positively decoded compatibility i/o registers 56 4.1.4.1 esc resident pic registers 57 4.1.4.2 eisa resident ide registers 57 4.2. eisa cycle address decoding 58 4.2.1 positively decoded memory cycles to main memory 58 4.2.2 programmable eisa-to-pci memory address regions 61 4.2.3 programmable eisa-to-pci i/o address regions 61 4.2.4 external eisa-to-pci i/o address decoder 62 4.3 palette dac snoop mechanism 62 5.0 pci interface 62 5.1 pci bus transactions 63 5.1.1 pci command set 63 5.1.2 pci cycle descriptions 64 5.1.2.1 interrupt acknowledge 64 5.1.2.2 special cycle 65 5.1.2.3 i/o read 65 5.1.2.4 i/o write 65 5.1.2.5 memory read 66 5.1.2.6 memory write 67 5.1.2.7 configuration read, configuration write 67 5.1.2.8 memory read multiple 68 4
contents page 5.1.2.9 memory read line 68 5.1.2.10 memory write and invalidate 68 5.1.3 pci transfer basics 68 5.1.3.1 turn-around-cycle definition 69 5.1.3.2 idle cycle definition 69 5.1.4 basic read 71 5.1.5 basic write 72 5.1.6 configuration cycles 73 5.1.7 interrupt acknowledge cycle 74 5.1.8 exclusive access 75 5.1.9 device selection 77 5.1.10 transaction termination 78 5.1.10.1 master initiated termination 78 5.1.10.2 target initiated termination 79 5.1.10.3 pceb target termination conditions 81 5.1.10.4 pceb master termination conditions 81 5.1.10.5 pceb responses/results of termination 81 5.1.11 pci data transfers with specific byte enable combinations 82 5.2 pci bus latency 82 5.2.1 master latency timer (mlt) 82 5.2.2 incremental latency mechanism 83 5.3 pci bus parity support and error reporting 83 5.3.1 parity generation and checking 83 5.3.1.1 address phase 84 5.3.1.2 data phase 84 5.3.2 parity erroreperr y signal 84 5.3.3 system errors 84 5.4 pci bus arbitration 85 5.4.1 pci arbiter configuration 85 5.4.1.1 fixed priority mode 87 5.4.1.2 rotating priority mode 89 5.4.1.3 mixed priority mode 89 5.4.1.4 locking masters 89 5.4.2 arbitration signaling protocol 89 5.4.2.1 req y and gnt y rules 90 5.4.2.2 back-to-back transactions 90 5
contents page 5.4.3 retry thrashing resolve 91 5.4.3.1 resume function 91 5.4.3.2 master retry timer 92 5.4.4 bus lock mode 92 5.4.5 memreq y , flshreq y , and memack y protocol 92 5.4.5.1 flushing system posted write buffers 93 5.4.5.2 guaranteed access time mode 94 5.4.5.3 interrupt synchronization-buffer flushing 95 5.4.6 bus parking 95 5.4.7 pci arbitration and pceb/esc eisa ownership exchange 96 5.4.7.1 gat mode and pereq y signaling 96 5.4.7.2 pci retry and eisa latency timer (elt) mechanism 96 6.0 data buffering 97 6.1 line buffers 98 6.1.1 write state 98 6.1.2 read state 99 6.2 buffer management summary 100 7.0 eisa interface 101 7.1 pceb as an eisa master 102 7.1.1 standard eisa memory and i/o read/write cycles 102 7.1.2 eisa back-off cycle 103 7.2 pceb as an eisa slave 105 7.2.1 eisa memory and i/o read/write cycles 106 7.2.2 eisa memory burst cycles 107 7.3 i/o recovery 108 8.0 eisa data swap buffers 109 8.1 data assembly and disassembly 109 8.2 the copy operation (up or down) 110 8.3 the re-drive operation 111 9.0 bios timer 114 9.1 bios timer operations 114 6
contents page 10.0 pceb/esc interface 115 10.1 arbitration control signals 115 10.2 system buffer coherency control-apic 117 10.3 power management (82375SB) 117 10.4 eisa data swap buffer control signals 117 10.5 interrupt acknowledge control 118 11.0 electrical characteristics 118 11.1 absolute maximum ratings 118 12.0 pinout and package information 119 12.1 pin assignment 119 12.2 package characteristics 127 13.0 testability 128 13.1 nand tree 128 7
82375eb/sb 1.0 architectural overview the pci-eisa bridge chip set provides an i/o subsystem core for the next generation of high-performance personal computers (e.g., those based on the intel486 tm or pentium processors). system designers can take advantage of the power of the pci local bus while maintaining access to the large base of eisa and isa expansion cards, and corresponding software applications. extensive buffering and buffer management within the pci-eisa bridge ensures maximum efficiency in both bus environments. the chip set consists of two componentsethe 82375eb pci-eisa bridge (pceb) and the 82374eb eisa system component (esc). these components work in tandem to provide an eisa i/o subsystem interface for personal computer platforms based on the pci standard. this section provides an overview of the pci and eisa bus hierarchy followed by an overview of the pceb and esc components. bus hierarchyeconcurrent operations figure 1 shows a block diagram of a typical system using the pci-eisa bridge chip set. the system contains three levels of buses structured in the following hierarchy: # host bus as the execution bus # pci bus as a primary i/o bus # eisa bus as a secondary i/o bus pci bus the pci bus has been defined to address the growing industry needs for a standardized local bus that is not directly dependent on the speed and the size of the processor bus. new generations of personal computer system software such as windows tm and win-nt tm with sophisticated graphical interfaces, multi-tasking and multi-threading bring new requirements that traditional pc i/o architectures can not satisfy. in addition to the higher bandwidth, reliability and robustness of the i/o subsystem are becoming increasingly important. the pci environment addresses these needs and provides an upgrade path for the future. pci features include: # processor independent # multiplexed, burst mode operation # synchronous up to 33 mhz # 120 mbyte/sec usable throughput (132 mbyte/sec peak) for 32-bit data path # 240 mbyte/sec usable throughput (264 mbyte/sec peak) for 64-bit data path # optional 64-bit data path with operations that are transparent with the 32-bit data path # low latency random access (60 ns write access latency to slaves from a master parked on the bus) # capable of full concurrency with processor/memory subsystem # full multi-master capability allowing any pci master peer-to-peer access to any pci slave # hidden (overlapped) central arbitration # low pin count for cost effective component packaging (multiplexed address/data) # address and data parity # three physical address spaces: memory, i/o, and configuration # comprehensive support for autoconfiguration through a defined set of standard configuration functions 8
82375eb/sb 290477 2 figure 1. pci-eisa system diagram system partitioning shown in figure 1 illustrates how the pci can be used as a common interface between different portions of a system platform that are typically supplied by the chip set vendor. these portions are the host/pci bridge (including a main memory dram controller and an optional secondary cache controller) and the pci-eisa bridge. thus, the pci allows a system i/o core design to be decoupled from the processor/ 9
82375eb/sb memory treadmill, enabling the i/o core to provide maximum benefit over multiple generations of processor/ memory technology. for this reason, the pci-eisa bridge can be used with different processors (i.e. deriva- tives of the intel486 cpu or the new generation processors, such as the pentium processor.) regardless of the new requirements imposed on the processor side of the host/pci bridge (e.g. 64-bit data path, 3.3v interface, etc.) the pci side remains unchanged. this standard pci environment allows reusability, not only of the rest of the platform chip set (i.e. pci-eisa bridge), but also of all other i/o functions interfaced at the pci level. these functions typically include graphics, scsi, and lan. eisa bus the eisa bus in the system shown in the figure 1 represents a second level i/o bus. it allows personal computer platforms built around the pci as a primary i/o bus to leverage the large eisa/isa product base. combinations of pci and eisa buses, both of which can be used to provide expansion functions, will satisfy even the most demanding applications. along with compatibility for 16-bit and 8-bit isa hardware and software, the eisa bus provides the following key features: # 32-bit addressing and 32-bit data path # 33 mbyte/sec bus bandwidth # multiple bus master support through efficient arbitration # support for autoconfiguration integrated bus central control functions the pci-eisa bridge chip set integrates central bus functions on both the pci and eisa buses. for pci, the functions include pci bus arbitration and the default bus driver. for the eisa bus, central functions include the eisa bus controller and eisa arbiter that are integrated in the esc and eisa data swap buffers that are integrated in the pceb. integrated system functions the pci-eisa bridge chip set integrates system functions including pci parity and system error reporting, buffer management, pci and eisa memory and i/o address space mapping and decoding. for maximum flexibility, all of these functions are programmable allowing for variety of optional features. 1.1 pceb overview the pceb and esc form a pci-eisa bridge chip set. the pceb/esc interface provides the inter-chip com- munications between these two devices. the major functions provided by the pceb are described in this section. pci bus interface the pceb can be either a master or slave on the pci bus and supports bus frequencies from 25-to-33 mhz. the pceb becomes a slave when it positively decodes a pci cycle. the pceb also becomes a slave for unclaimed cycles on the pci bus. these unclaimed cycles are subtractively decoded by the pceb and forwarded to the eisa bus. as a slave, the pceb supports single cycle transfers for memory, i/o, and configuration operations. 10
82375eb/sb for eisa-initiated transfers to the pci bus, the pceb is a pci master. the pceb permits eisa devices to access either pci memory or i/o. while all pci i/o transfers are single cycle, pci memory cycles can be either single cycle or burst, depending on the status of the pceb's line buffers. during eisa reads of pci memory, the pceb uses a burst read cycle of four dwords to prefetch data into a line buffer. during eisa-to- pci memory writes, the pceb uses pci burst cycles to flush the line buffers. the pceb contains a program- mable master latency timer that provides the pceb with a guaranteed time slice on the pci bus, after which it surrenders the bus. as a master on the pci bus, the pceb generates address and command signals (c/be [ 3:0 ] y ), address parity for read and write cycles, and data parity for write cycles. as a slave, the pceb generates data parity for read cycles. parity checking is not supported. the pceb, as a resource, can be locked by any pci master. in the context of locked cycles, the entire pceb subsystem (including the eisa bus) is considered a single resource. pci bus arbitration the pci arbiter supports six pci mastersethe host/pci bridge, pceb, and four other pci masters. the arbiter can be programmed for twelve fixed priority schemes, a rotating scheme, or a combination of the fixed and rotating schemes. the arbiter can be programmed for bus parking that permits the host/pci bridge default access to the pci bus when no other device is requesting service. the arbiter also contains an efficient pci retry mechanism to minimize pci bus thrashing when the pceb generates a retry. eisa bus interface the pceb contains a fully eisa-compatible master and slave interface. the pceb directly drives eight eisa slots without external data or address buffering. the pceb is only a master or slave on the eisa bus for transfers between the eisa bus and pci bus. for transfers contained to the eisa bus, the pceb is never a master or slave. however, the data swap buffers contained in the pceb are involved in these transfers, if data size translation is needed. the pceb also provides support for i/o recovery. eisa/isa masters and dma can access pci memory or i/o. the pceb only forwards eisa cycles to the pci bus if the address of the transfer matches one of the address ranges programmed into the pceb for eisa-to- pci positive decode. this includes the main memory segments used for generating memcs y from the eisa bus, one of the four programmable memory regions, or one of the four programmable i/o regions. for eisa- initiated accesses to the pci bus, the pceb is a slave on the eisa bus. i/o accesses are always non-buffered and memory accesses can be either non-buffered or buffered via the line buffers. for buffered accesses, burst cycles are supported. during pci-initiated cycles to the eisa bus, the pceb is an eisa master. single cycle transfers are used for i/ o and memory read/write cycles from pci to eisa. pci/eisa address decoding the pceb contains two address decoderseone to decode pci-initiated cycles and the other to decode eisa- initiated cycles. the two decoders permit the pci and eisa buses to operate concurrently. the pceb can also be programmed to provide main memory address decoding on behalf of the host/pci bridge. when programmed, the pceb monitors the pci and eisa bus cycle addresses, and generates a memory chip select signal (memcs y ) indicating that the current cycle is targeted to main memory residing behind the host/pci bridge. programmable features include, read/write attributes for specific memory seg- ments and the enabling/disabling of a memory hole. if not used, the memcs y feature can be disabled. 11
82375eb/sb in addition to the main memory address decoding, there are four programmable memory regions and four programmable i/o regions for eisa-initiated cycles. eisa/isa master or dma accesses to one of these regions are forwarded to the pci bus. data buffering the pceb contains four 16-byte wide line buffers for eisa-initiated cycles to the pci bus. the line buffers permit prefetching of read data from pci memory and posting of data being written to pci memory. by using burst transactions to fill or flush these buffers, when appropriate, the pceb maximizes bus efficiency. for example, an eisa device could fill a line buffer with byte, word, or dword transfers and the pceb would use a pci burst cycle to flush the filled line to pci memory. bios timer the pceb has a 16-bit bios timer. the timer can be used by bios software to implement timing loops. the timer count rate is derived from the eisa clock (bclk) and has an accuracy of g 1 m s. 1.2 esc overview the pceb and esc form a pci-eisa bridge. the pceb/esc interface provides the inter-chip communications between these two devices. the major functions provided by the esc are described in this section. eisa controller the esc incorporates a 32-bit master and an 8-bit slave. the esc directly drives eight eisa slots without external data or address buffering. eisa system clock (bclk) generation is integrated by dividing the pci clock (divide by 3 or divide by 4) and wait state generation is provided. the aenx and mackx signals provide a direct interface to four eisa slots and supports eight eisa slots with encoded aenx and mackx signals. the esc contains an 8-bit data bus (lower 8 bits of the eisa data bus) that is used to program the esc's internal registers. note that for transfers between the pci and eisa buses, the pceb provides the data path. thus, the esc does not require a full 32-bit data bus. a full 32-bit address bus is provided and is used during refresh cycles and for dma operations. the esc performs cycle translation between the eisa bus and isa bus. for mis-matched master/slave combinations, the esc controls the data swap buffers that are located in the pceb. this control is provided through the pceb/esc interface. dma controller the esc incorporates the functionality of two 82c37 dma controllers with seven independently programma- ble channels. each channel can be programmed for 8- or 16-bit dma device size, and isa-compatible, type ``a'', type ``b'', or type ``c'' timings. full 32-bit addressing is provided. the dma controller also generates refresh cycles. 12
82375eb/sb the dma controller supports an enhanced feature called scatter/gather. this feature provides the capability of transferring multiple buffers between memory and i/o without cpu intervention. in scatter/gather mode, the dma can read the memory address and word count from an array of buffer descriptors, located in main memory, called the scatter/gather descriptor (sgd) table. this allows the dma controller to sustain dma transfers until all of the buffers in the sgd table are handled. interrupt controller the esc contains an eisa compatible interrupt controller that incorporates the functionality of two 82c59 interrupt controllers. the two interrupt controllers are cascaded providing 14 external and two internal inter- rupts. advanced programmable interrupt controller (apic) in addition to the standard eisa compatible interrupt controller described above, the esc incorporates the advanced programmable interrupt controller (apic). while the standard interrupt controller is intended for use in a uni-processor system, apic can be used in either a uni-processor or multi-processor system. apic provides multi-processor interrupt management and incorporates both static and dynamic symmetric interrupt distribution across all processors. in systems with multiple i/o subsystems, each subsystem can have its own set of interrupts. timer/counter the esc provides two 82c54 compatible timers (timer 1 and timer 2). the counters in timer 1 support the system timer interrupt (irq0 y ), refresh request, and a speaker tone output (spkr). the counters in timer 2 support fail-safe time-out functions and the cpu speed control. integrated support logic to minimize the chip count for board designs, the esc incorporates a number of extended features. the esc provides support for alta20 (fast a20gate) and altrst with i/o port 92h. the esc generates the control signals for sa address buffers and x-bus buffer. the esc also provides chip selects for bios, the keyboard controller, the floppy disk controller, and three general purpose devices. support for generating chip selects with an external decoder is provided for ide, a parallel port, and a serial port. the esc provides support for a pc/at compatible coprocessor interface and irq13 generation. power management extensive power management capability permits a system to operate in a low power state without being powered down. once in the low power state (called ``fast off'' state), the computer appears to be off. for example, the smm code could turn off the crt, line printer, hard disk drive's spindle motor, and fans. in addition, the cpu's clock can be governed. to the user, the machine appears to be in the off state. however, the system is actually in an extremely low power state that still permits the cpu to function and maintain communication connections normally associated with today's desktops (e.g., lan, modem, or fax). program- mable options provide power management flexibility. for example, various system events can be programmed to place the system in the low power state or break events can be programmed to wake the system up. 13
82375eb/sb 2.0 signal description this section provides a detailed description of each signal. the signals are arranged in functional groups according to their associated interface. the `` y '' symbol at the end of a signal name indicates that the active, or asserted state occurs when the signal is at a low voltage level. when `` y '' is not present after the signal name, the signal is asserted when at the high voltage level. the terms assertion and negation are used extensively. this is done to avoid confusion when working with a mixture of ``active-low'' and ``active-high'' signals. the term assert ,or assertion indicates that a signal is active, independent of whether that level is represented by a high or low voltage. the term negate ,or negation indicates that a signal is inactive. the following notations are used to describe the signal type. in input is a standard input-only signal out totem pole output is a standard active driver o/d open drain input/output t/s tri-state is a bi-directional, tri-state input/output pin s/t/s sustained tri-state is an active low tri-state signal owned and driven by one and only one agent at a time. the agent that drives a s/t/s pin low must drive it high for at least one clock before letting it float. a new agent can not start driving a s/t/s signal any sooner than one clock after the previous owner tri- states it. an external pull-up is required to sustain the inactive state until another agent drives it and must be provided by the central resource. 14
82375eb/sb 2.1 pci bus interface signals pin name type description pciclk in pci clock: pciclk provides timing for all transactions on the pci bus. all other pci signals are sampled on the rising edge of pciclk and all timing parameters are defined with respect to this edge. frequencies supported by the pceb range from 25 to 33 mhz. pcirst y in pci reset: pcirst y forces the pceb into a known state. all t/s and s/t/s signals are forced to a high impedance state, and the s/o/d signals are allowed to float high. the pceb negates all gnt y lines to the pci bus and the pceb negates its internal request. the pceb drives ad [ 31:0 ] , c/be [ 3:0 ] y , and par during reset to keep these signals from floating (depending on the state of cpureq y and req1 y eas described in the following paragraph). as long as pcirst y is asserted, the pceb drives the ad [ 31:0 ] signals to keep them from floating. note that cpureq y must be sampled high when pcirst y is asserted. all pceb registers are set to their default values. pcirst y may be asynchronous to pciclk when asserted or negated. although asynchronous, the negation of pcirst y must be a clean, bounce-free edge. pcirst y must be asserted for a minimum 1 m s, and pciclk must be active during the last 100 m s of the pcirst y pulse. ad [ 31:0 ] t/s address and data: ad [ 31:0 ] is a multiplexed address and data bus. during the first clock of a transaction, ad [ 31:0 ] contain a physical address. during subsequent clocks, ad [ 31:0 ] contain data. a pceb bus transaction consists of an address phase followed by one or more data phases. little-endian byte ordering is used. ad [ 7:0 ] define the least significant byte (lsb) and ad [ 31:24 ] the most significant byte (msb). the information contained in the two low order address bits varies by address space. in the i/o address space, ad [ 1:0 ] are used to provide full byte address. in the memory and configuration address space, ad [ 1:0 ] are driven ``00'' during the address phase. the other three encodings are reserved. see section 5.0, pci interface for more details. when the pceb is a target, ad [ 31:0 ] are inputs during the address phase of a transaction. during the following data phase(s), the pceb may be asked to supply data on ad [ 31:0 ] as for a pci read, or accept data as for a pci write. as an initiator, the pceb drives a valid address on ad [ 31:0 ] (with exceptions related to ad [ 1:0 ] ) during the address phase, and drives write or latches read data on ad [ 31:0 ] during the data phase. when pcirst y is asserted, the pceb drives the ad [ 31:0 ] signals to keep them from floating. in addition, the pceb acts as the central resource responsible for driving the ad [ 31:0 ] signals when no device owns the pci bus and the bus is idle. 15
82375eb/sb pin name type description c/be [ 3:0 ] y t/s bus command and byte enables: the command and byte enable signals are multiplexed on the same pci pins. during the address phase of a transaction, c/be [ 3:0 ] y define the bus command for bus command definitions. during the data phase, c/be [ 3:0 ] y are used as byte enables. the byte enables determine which byte lanes carry meaningful data. c/be [ 0 ] y applies to byte 0 and c/be [ 3 ] y to byte 3. c/be [ 3:0 ] y are not used for address decoding. the pceb drives c/be [ 3:0 ] y as an initiator of a pci bus cycle and monitors c/be [ 3:0 ] y as a target. when pcirst y is asserted, the pceb drives c/be [ 3:0 ] y to keep them from floating. in addition, the pceb acts as the central resource responsible for driving the c/be [ 3:0 ] y signals when no device owns the pci bus and the bus is idle frame y s/t/s frame: frame y is driven by the current initiator to indicate the beginning and duration of an access. frame y is asserted to indicate that a bus transaction is beginning. during a transaction, data transfers continue while frame y is asserted. when frame y is negated, the transaction is in the final data phase. frame y is an input when the pceb is the target. frame y is an output when the pceb is the initiator. during reset, this signal is tri-stated. trdy y s/t/s target ready: trdy y , as an output, indicates the target's ability to complete the current data phase of the transaction. trdy y is used in conjunction with irdy y . a data phase is completed on any clock that both trdy y and irdy y are sampled asserted. when pceb is the target during a read cycle, trdy y indicates that the pceb has valid data present on ad [ 31:0 ] . during a write, it indicates that the pceb, as a target, is prepared to latch data. trdy y is an input to the pceb when the pceb is the initiator. during reset, this signal is tri-stated. irdy y s/t/s initiator ready: irdy y , as an output, indicates the initiator's ability to complete the current data phase of the transaction. irdy y is used in conjunction with trdy y . a data phase is completed on any clock that both irdy y and trdy y are sampled asserted. when pceb is the initiator of a write cycle, irdy y indicates that the pceb has valid data present on ad [ 31:0 ] . during a read, it indicates the pceb is prepared to latch data. irdy y is an input to the pceb when the pceb is the target. during reset, this signal is tri-stated. stop y s/t/s stop: as a target, the pceb asserts stop y to request that the master stop the current transaction. when the pceb is an initiator, stop y is an input. as an initiator, the pceb stops the current transaction when stop y is asserted. different semantics of the stop y signal are defined in the context of other handshake signals (trdy y and devsel y ). during reset, this signal is tri-stated. plock y s/t/s pci lock: plock y indicates an atomic operation that may require multiple transactions to complete. plock y is an input when pceb is the target and output when pceb is the initiator. when plock y is sampled negated during the address phase of a transaction, a pci agent acting as a target will consider itself a locked resource until it samples plock y and frame y negated. when other masters attempt accesses to the pceb (practically to the eisa subsystem) while the pceb is locked, the pceb responds with a retry termination. during reset, this signal is tri- stated. 16
82375eb/sb pin name type description idsel in initialization device select: idsel is used as a chip select during configuration read and write transactions. the pceb samples idsel during the address phase of a transaction. if the pceb samples idsel asserted during a configuration read or write, the pceb responds by asserting devsel y on the next cycle. devsel y s/t/s device select: the pceb asserts devsel y to claim a pci transaction as a result of positive or subtractive decode. as an output, the pceb asserts devsel y when it samples idsel asserted during configuration cycles to pceb configuration registers. as an input, devsel y indicates the response to a pceb-initiated transaction. the pceb, when not a master, samples this signal for all pci transactions to decide whether to subtractively decode the cycle (except for configuration and special cycles). during reset, this signal is tri-stated. par t/s parity: par is even parity across ad [ 31:0 ] and c/be [ 3:0 ] y . when acting as a master, the pceb drives par during the address and write data phases. as a target, the pceb drives par during read data phases. when pcirst y is asserted, the pceb drives the par signal to keep it from floating. the pceb acts as the central resource responsible for driving the par signal when no other device is granted the pci bus and the bus is idle. note that the driving and tri-stating of the par signal is always one clock delayed from the corresponding driving and tri-stating of the ad [ 31:0 ] and c/be [ 3:0 ] y signals. perr y s/t/s parity error: perr y reports data parity errors on all transactions, except special cycles. this signal can only be asserted (by the agent receiving data) two clocks following the data (which is one clock following the par signal that covered the data). the duration of perr y is one clock for each data phase that a data parity error is detected. (if multiple data errors occur during a single transaction the perr y signal is asserted for more than a single clock.) perr y must be driven high for one clock before being tri-stated. during reset, this signal is tri-stated. 17
82375eb/sb 2.2 pci arbiter signals pin name type description cpureq y in cpu request: cpureq y asserted indicates that the host cpu requests use of the pci bus. during pcirst y , this signal must be sampled high by the pceb. when pcirst y is asserted (and cpureq y is sampled high), the pceb drives the ad, c/be y , and par signals to keep them from floating. req [ 3:0 ] y in request: a bus master asserts the corresponding request signal to request the pci bus. cpugnt y out cpu grant: the pceb asserts cpugnt y to indicate that the cpu master (host bridge) has been granted the pci bus. during pci reset, cpugnt y is tri-stated. gnt [ 3:0 ] y out grant: the pceb asserts one of the gnt [ 3:0 ] signals to indicate that the corresponding pci master has been granted the pci bus. during pci reset, these signals are tri-stated. memreq y out memory request: if the pceb is configured in guaranteed access time (gat) mode, memreq y is asserted when an eisa device or dma requests the eisa bus. the pceb asserts this signal (along with flshreq y ) to indicate that the pceb requires ownership of main memory. the pceb asserts flshreq y concurrently with asserting memreq y . this signal is synchronous to the pci clock. during reset, this signal is driven high. flshreq y memreq y meaning 1 1 idle 0 1 flush buffers pointing towards pci to avoid isa deadlock 1 0 gat enabled or disabled: for buffer coherency in apic systems, the buffers pointing to main memory must be flushed and disabled for the duration of assertion. 0 0 gat mode: guarantee pci bus immediate access to main memory (this may or may not require the pci-to-main memory buffers to be flushed first, depending on the number of buffers). flshreq y out flush request: flshreq y is asserted by the pceb to command all of the system's posted write buffers pointing towards pci to be flushed. this is required before granting the eisa bus to an eisa master or the dma. note that, for apic related buffer flush requests, this signal is negated. this signal is synchronous to the pci clock. during reset, this signal is driven high. 18
82375eb/sb pin name type description memack y in memory acknowledge: memack y is the response handshake that indicates to the pceb that the function requested over the memreq y and/or flshreq y signals has been completed. if the pceb is configured for guaranteed access time mode through the arbiter control register, and both memreq y and flshreq y are asserted, the assertion of memack y indicates to the pceb that ownership of main memory has been granted and that all system buffers have been flushed and temporarily disabled. if memack y is asserted in response to assertion of memreq y (gat either enabled or disabled), it indicates that the system's buffers pointing towards the main memory are flushed and temporarily disabled so that apic can proceed with the interrupt message sequence. if flshreq y is asserted and memreq y is not asserted (with gat mode being either enabled or disabled), the assertion of memack y indicates that the system's posted write buffers pointing towards pci are flushed and temporarily disabled, and the eisa bus can be granted to an eisa master or dma. this signal is synchronous to the pci clock. 2.3 address decoder signals pin name type description memcs y out memory chip select: memcs y is a programmable address decode signal provided to a host cpu bridge. a host bridge can use memcs y to forward a pci cycle to the main memory behind the bridge. memcs y is asserted one pci clock after frame y is sampled asserted (address phase) and is valid for one clock cycle before being negated. memcs y is driven high during reset. piodec y in pci i/o space decoder: piodec y can be used to provide arbitrarily complex eisa-to-pci i/o address space mapping. this signal can be connected to the decode select output of an external i/o address decoder. when piodec y is asserted during an eisa i/o cycle, that cycle is forwarded to the pci bus. note that an external pull-up resistor is required if this input signal is not used (i.e., not driven by the external logic). 19
82375eb/sb 2.4 eisa interface signals pin name type description bclk in bus clock: bclk is the system clock used to synchronize events on the eisa bus. the esc device generates bclk (bclkout), which is a divided down clock from a pciclk. bclk runs at a frequency that is dependent on pciclk and a selected division factor (within the esc). for example, a 25 mhz pciclk and a division factor of 3 results in an 8.33 mhz bclk. start y t/s start: start y provides timing control at the start of the cycle and remains asserted for one bclk period. when the pceb is an eisa master, start y is an output signal. start y is asserted after la [ 31:24 ] y ,la [ 23:2 ] and m/io y become valid. start y is negated on the rising edge of the bclk, one bclk after it was asserted. the trailing edge of start y is always delayed from the rising edge of bclk. when the pceb is an eisa master, for cycles to a mismatched slave (see note at the end of this section), start y becomes an input signal at the end of the first start y phase and remains an input until the negation of the last cmd y . the esc gains the control of the transfer and generates start y . when the pceb is an eisa slave, start y is an input signal. it is sampled on the rising edge of bclk. upon pcirst y , this signal is tri-stated and placed in output mode. cmd y in command: cmd y provides timing control within the cycle. in all cases, cmd y is an input to the pceb from the esc. cmd y is asserted from the rising edge of bclk, simultaneously with the negation of start y , and remains asserted until the end of the cycle. m/io y t/s memory or i/o: m/io y identifies the current cycle as a memory or an i/o cycle. m/io y is pipelined from one cycle to the next and must be latched by the slave. m/io y e 1 indicates a memory cycle and m/io y e 0 indicates an i/o cycle. when the pceb is an eisa master, the m/io y is an output signal. when the pceb is an eisa slave, m/io y is an input signal. the pceb responds as an eisa slave for both memory and i/o cycles. upon pcirst y , this signal is tri-stated and is placed in output mode. w/r y t/s write or read: w/r y identifies the cycle as a write or a read cycle. the w/r y signal is pipelined from one cycle to the next and must be latched by the slave. w/r y e 1 indicates a write cycle and w/r y e 0 indicates a read cycle. when the pceb is an eisa master, w/r y is an output signal. when the pceb is an eisa slave, w/r y is an input signal. upon pcirst y , this signal is tri-stated and placed in output mode. 20
82375eb/sb pin name type description exrdy od eisa ready: exrdy is used by eisa i/o and memory slaves to request wait states during a cycle. each wait state is a bclk period. the pceb, as an eisa master or slave, samples exrdy. as an input, the exrdy is sampled on the falling edge of bclk after the cmd y has been asserted, and if inactive, each falling edge thereafter. when pceb is an eisa slave, it may drive exrdy low to introduce wait states. during reset, this signal is not driven. ex32 y od eisa 32 bit: ex32 y is used by the eisa slaves to indicate support of 32 bit transfers. when the pceb is an eisa master, it samples ex32 y on the same rising edge of bclk that start y is negated. during mismatched cycles (see note at the end of this section), ex32 y (and ex16 y ) is used to transfer the control back to the pceb. ex32 y (along with ex16 y )is asserted by the esc on the falling edge of bclk before the rising edge of the bclk when the last cmd y is negated. this indicates that the cycle control is transferred back to the pceb. as an eisa slave, the pceb always drives ex32 y to indicate 32 bit support for eisa cycles. during reset, this signal is not driven. ex16 y in eisa 16 bit: ex16 y is used by the eisa slaves to indicate their support of 16 bit transfers. as an eisa master, the pceb samples ex16 y on the same rising edge of bclk that start y is negated. during mismatched cycles (see note at the end of this section), ex16 y (and ex32 y ) is used to transfer the control back to the pceb. ex16 y (along with ex32 y )is asserted by the esc on the falling edge of the bclk before the rising edge of the bclk when the last cmd y is negated. this indicates that the cycle control is transferred back to the pceb. as an eisa slave, the pceb never asserts ex16 y . msburst y t/s master burst: msburst y is an output when the pceb is an eisa master and an input when the pceb is a slave. as a master, the pceb asserts msburst y to indicate to the slave that the next cycle is a burst cycle. if the pceb samples slburst y asserted on the rising edge of bclk after start y is asserted, the pceb asserts msburst y on the next bclk edge and proceeds with the burst cycle. as a slave, the pceb monitors this signal in response to the pceb asserting slburst y . the eisa master asserts msburst y to the pceb to indicate that the next cycle is a burst cycle. as a slave, the pceb samples msburst y on the rising edge of bclk after the rising edge of bclk that cmd y is asserted by the esc. msburst y is sampled on all subsequent rising edges of bclk until the signal is sampled negated. the burst cycle is terminated on the rising edge of bclk when msburst y is sampled negated, unless exrdy is sampled negated on the previous falling edge of bclk. during reset, this signal is tri-stated. 21
82375eb/sb pin name type description slburst y t/s slave burst: slburst y is an input when the pceb is an eisa master and an output when the pceb is a slave. when the pceb is a master, the slave indicates that it supports burst cycles by asserting slburst y to the pceb. the pceb samples slburst y on the rising edge of bclk at the end of start y for eisa master cycles. when the pceb is an eisa slave, this signal is an output. as a slave, the pceb asserts this signal to the master indicating that the pceb supports eisa burst cycles. during reset, this signal is tri-stated. lock y t/s lock: when asserted, lock y guarantees exclusive memory access. this signal is asserted by the pceb when the pci master is running locked cycles to eisa slaves. when asserted, this signal locks the eisa subsystem. lock y can also be activated by a device on the eisa bus. this condition is propagated to the pci bus via the plock y signal. during reset, this signal is tri- stated. be [ 3:0 ] y t/s byte enables: be [ 3:0 ] y identify the specific bytes that are valid during the current eisa bus cycles. when the pceb is an eisa master and the cycles are directed to a matched slave (slave supports 32-bit transfers), the be [ 3:0 ] y are outputs from the pceb. when the cycles are directed to a mis-matched slave (slave does not support 32-bit transfers - see note), the be [ 3:0 ] y are floated one and half bclks after start y is asserted. these signals become inputs (driven by the esc) for the rest of the cycle. be [ 3:0 ] y are pipelined signals and must be latched by the addressed slave. when the pceb is an eisa/isa/dma slave, be [ 3:0 ] y are inputs to the pceb. upon pcirst y , these signals are tri-stated and placed in output mode. la [ 31:24 ] y , t/s latchable address: la [ 31:24 ] y and la [ 23:2 ] are the eisa address signals. when the pceb is an eisa master, these signals are outputs from the pceb. these la [ 23:2 ] addresses are pipelined and must be latched by the eisa slave. la [ 31:24 ] y and la [ 23:2 ] are valid on the falling edge of start y . note that the upper address bits are inverted before being driven on la [ 31:24 ] y . the timing for la [ 31:24 ] and la [ 23:2 ] are the same. when the pceb is an eisa slave, these signals are inputs and are latched by the pceb. for i/o cycles, the pceb, as an eisa master, floats la [ 31:24 ] y to allow for esc's address multiplexing (during i/o cycle to configuration ram). la [ 23:2 ] are actively driven by the pceb. for memory cycles, the pceb as an eisa master, drives the la address lines. during reset, these signals are tri-stated. 22
82375eb/sb pin name type description sd [ 31:0 ] t/s system data: sd [ 31:0 ] are bi-directional data lines that transfer data between the pceb and other eisa devices. data transfer between eisa and pci devices use these signals. the data swapping logic in the pceb ensures that the data is available on the correct byte lanes for any given transfer. during reset, these signals are tri- stated. refresh y in refresh: when asserted, refresh y indicates to the pceb that the current cycle on the eisa bus is a refresh cycle. it is used by the pceb decoder to distinguish between eisa memory read cycles and refresh cycles. note: mis-matched cycles . when the pceb is an eisa master, cycles to the slaves, other than 32 bits transfers, are considered a mis-matched cycle. for mis-matched cycles, the pceb backs off the eisa bus one and half bclks after it asserted start y by releasing (floating) start y ,be [ 3:0 ] y and the sd [ 31:0 ] lines. the esc device then takes control of the transfer. the esc controls the transfer until the last transfer. at the end of the last transfer, the control is transferred back to the pceb. the esc transfers control back to the pceb by asserting ex32 y and ex16 y on the falling edge of bclk before the rising edge of bclk when the last cmd y is negated. 2.5 isa interface signals an isa interface signal is included to improve the pceb's handling of i/o cycles on the eisa side of the bridge. this signal permits isa masters to address pci i/o slaves using the full 16-bit bus size. the signal also allows the pceb to identify 8-bit i/o slaves for purposes of generating the correct amount of i/o recovery. pin name type description io16 y o/d 16-bit i/o chip select: as an eisa slave, the pceb asserts io16 y when piodec y is asserted or an i/o cycle to pci is detected. as an eisa master, the pceb uses io16 y as an input to determine the correct amount of i/o recovery time from the i/o recovery time (iort) register. this register contains bit-fields that are used to program recovery times for 8-bit and 16-bit i/o. when io16 y is asserted, the recovery time programmed into the 16-bit i/o field (bits [ 1:0 ] ) , if enabled, is used. when io16 y is negated, the recovery time programmed into the 8-bit i/o field (bits [ 5:3 ] ), if enabled, is used. this signal must have an external pull-up resistor. during reset, this signal is not driven. 23
82375eb/sb 2.6 pceb/esc interface signals pin name type description arbitration and interrupt acknowledge control eisahold in eisa hold: eisahold is used by the esc to request control of the eisa bus from the pceb. this signal is synchronous to pciclk and is driven inactive when pcirst y is asserted. eisahlda out eisa hold acknowledge: the pceb asserts eisahlda to inform the esc that it has been granted ownership of the eisa bus. this signal is synchronous to the pciclk. pereq y / out pci-to-eisa request or interrupt acknowledge: pereq y /inta y is a dual-function signal. the signal function is determined by the state of eisahlda inta y signal. when eisahlda is negated, this signal is an interrupt acknowledge (i.e., pereq y / inta y asserted indicates to the esc that the current cycle on the eisa is an interrupt acknowledge). when eisahlda is asserted, this signal is a pci-to-eisa request (i.e. pereq y / inta y asserted indicates to the esc that the pceb needs to obtain the ownership of the eisa bus on behalf of a pci agent). this signal is synchronous to the pciclk and it is driven inactive when pcirst y is asserted. stpgnt y out stop grant acknowledge: stpgnt y is asserted when the pceb receives a stop grant pci special cycle for one pciclk period. this signal is only asserted when the pci ad [ 31:0 ] signals equal 00120002h during the first data phase of the pci special cycle. data of 00120002h on ad [ 31:0 ] in subsequent data phases during a pci special cycle does not result in the assertion of stpgnt y . 24
82375eb/sb pin name type description pceb buffer coherency control nmflush y t/s new master flush: the bi-directional nmflush y signal provides handshake between the pceb and esc to control flushing of pci system buffers on behalf of eisa masters. during an eisa bus ownership change, before the esc can grant the bus to the eisa master (or dma), the esc must ensure that system buffers are flushed and the buffers pointing towards the eisa subsystem are disabled. the esc asserts nmflush y for one pci clock to request system buffer flushing. (after asserting nmflush y for 1 pci clock, the esc tri-states nmflush y .) when the pceb samples nmflush y asserted, it starts immediately to assert nmflush y and begins flushing its internal buffers, if necessary. the pceb also requests pci system buffer flushing via the memreq y , flshreq y , and memack y signals. when the pceb completes its internal buffer flushing and memack y is asserted (indicating that the pci system buffer flushing is complete), the pceb negates nmflush y for 1 pci clock and stops driving it. when the esc samples nmflush y negated, it grants the eisa bus to an eisa master (or dma). the esc resumes responsibility of the default nmflush y driver and starts driving nmflush y negated until the next time a new eisa master (or dma) wins arbitration. this signal is synchronous with pciclk and is negated by the esc at reset. aflush y t/s apic flush: aflush y is bi-directional signal between the pceb and esc that controls system buffer flushing on behalf of the apic. after a reset the esc negates aflush y until the apic is initialized and the first interrupt request is recognized. 25
82375eb/sb pin name type description data swap buffer control sdcpyen01 y in copy enable: these active low signals perform byte copy operation on the eisa data bus (sd [ 31:0 ] ). the copy enable signals are asserted during mis- sdcpyen02 y matched cycles and are used by the pceb to enable byte copy operations sdcpyen03 y between the sd data byte lanes 0, 1, 2, and 3 as follows: sdcpyen13 y sdcpyen01 y : copy between byte lane 0 (sd [ 7:0 ] ) and byte lane 1 (sd [ 15:8 ] ) sdcpyen02 y : copy between byte lane 0 (sd [ 7:0 ] ) and byte lane 2 (sd [ 23:16 ] ) sdcpyen03 y : copy between byte lane 0 (sd [ 7:0 ] ) and byte lane 3 (sd [ 31:24 ] ) sdcpyen13 y : copy between byte lane 1 (sd [ 15:8 ] ) and byte lane 3 (sd [ 31:24 ] ) note that the direction of the copy is controlled by sdcpyup. sdcpyup in system data copy up: sdcpyup controls the direction of the byte copy operation. a high on sdcpyup indicates a copy up operation where the lower byte(s) of the sd data bus are copied onto the higher byte(s) of the bus. a low on the signal indicates a copy down operation where the higher byte(s) of the data bus are copied on to the lower byte(s) of the bus. the pceb uses this signal to perform the actual data byte copy operation during mis-matched cycles. sdoe [ 2:0 ] y in system data output enable: these active low signals enable the sd data output onto the eisa bus. the esc only activates these signals during mis- matched cycles. the pceb uses these signal to enable the sd data buffers as follows: sdoe0 y enables byte lane 0 sd [ 7:0 ] sdoe1 y enables byte lane 1 sd [ 15:8 ] sdoe2 y enables byte lane 3 sd [ 31:24 ] and byte lane 2 sd [ 23:16 ] sdle [ 3:0 ] y in system data latch enable: sdle [ 3:0 ] y enable the latching of data on the eisa bus. these signals are activated only during mis-matched cycles, except pceb-initiated write cycles. the pceb uses these signals to latch the sd data bus as follows: sdle0 y latch byte lane 0 sd [ 7:0 ] sdle1 y latch byte lane 1 sd [ 15:8 ] sdle2 y latch byte lane 2 sd [ 23:16 ] sdle3 y latch byte lane 3 sd [ 31:24 ] 2.7 test signal pin name type description test y in test: this pin is used to tri-state all pceb outputs. during normal operations, this pin must be tied high. 26
82375eb/sb 3.0 register description the pceb contains both pci configuration registers and i/o registers. the configuration registers (table 1) are located in pci configuration space and are only accessible from the pci bus. the addresses shown in the table for each register are offset values that appear on ad [ 7:2 ] and c/be [ 3:0 ] y . the configuration registers can be accessed as byte, word (16-bit), or dword (32-bit) quantities. all multi-byte numeric fields use ``little-en- dian'' ordering (i.e., lower addresses contain the least significant parts of the fields). the bios timer is the only non-configuration register (section 3.2, i/o registers). this register, like the configuration registers, is only accessible from the pci bus. the bios timer register can be accessed as byte, word, or dword quantities. some of the pceb registers contain reserved bits. these bits are labeled ``reserved''. software must take care to deal correctly with bit-encoded fields that are reserved. on reads, software must use appropriate masks to extract the defined bits and not rely on reserved bits being any particular value. on writes, software must ensure that the values of reserved bits are preserved. that is, the values of reserved bit positions must first be read, merged with the new values for other bit positions and the data then written back. in addition to reserved bits within a register, the pceb contains address locations in the pci configuration space that are marked ``reserved'' (table 1). the pceb responds to accesses to these address locations by completing the pci cycle. when a reserved register location is read, 0000h is returned. writes have no affect on the pceb. during a hard reset (pcirst y asserted), the pceb registers are set to pre-determined default states. the default values are indicated in the individual register descriptions. during the address phase of a configuration cycle, bits [ 10:8 ] encode one of eight possible functions on a device. the pceb only supports one function; that of a bridge between the pci and eisa/isa busses. this function has the code of 000. thus, for accessing pceb configuration registers, bits [ 10:8 ] e 000 of the ad- dress. if the pceb idsel is asserted and any of the above three bits is 1, the pceb returns all zeros for a read and does not respond to a write. 3.1 configuration registers table 1 summarizes the pceb configuration space registers. following the table, is a detailed description of each register and register bit. the register descriptions are arranged in the order that they appear in table 1. the following nomenclature is used for access attributes. ro read only . if a register is read only, writes to this register have no effect. r/w read/write . a register with this attribute can be read and written. r/wc read/write clear . a register bit with this attribute can be read and written. however, a write of a 1 clears (sets to 0) the corresponding bit and a write o f a 0 has no effect. note: some register fields are used to program address ranges for various pceb functions. the register contents represent the address bit value and not the signal level on the bus. for example, the upper address lines on the eisa bus have inverted signals (la [ 31:24 ] y ). however, this inversion is auto- matically handled by the pceb hardware and is transparent to the programmer. 27
82375eb/sb table 1. configuration registers address abbreviation register name access offset 00 01h vid vendor identification ro 02 03h did device identification ro 04 05h pcicmd command register r/w 06 07h pcists status register ro, r/wc 08h rid revision identification ro 09 0ch e reserved e 0dh mltim master latency timer r/w 0e 3fh e reserved e 40h pcicon pci control r/w 41h arbcon pci arbiter control r/w 42h arbpri pci arbiter priority control r/w 43h arbprix pci arbiter priority control extension r/w 44h mcscon memcs y control r/w 45h mcsboh memcs y bottom of hole r/w 46h mcstoh memcs y top of hole r/w 47h mcstom memcs y top of memory r/w 48 49h eadc1 eisa address decode control 1 r/w 4a 4bh e reserved e 4ch iortc isa i/o recovery time control r/w 4dh 53h e reserved e 54h mar1 memcs y attribute register y 1 r/w 55h mar2 memcs y attribute register y 2 r/w 56h mar3 memcs y attribute register y 3 r/w 57h e reserved e 58h pdcon pci decode control r/w 59h e reserved e 5ah eadc2 eisa address decode control 2 r/w 5bh e reserved e 28
82375eb/sb table 1. configuration registers (continued) address abbreviation register name access offset 5ch epmra eisa-to-pci memory region attributes r/w 5d 5fh e reserved e 60 6fh memregn [ 4:1 ] eisa-to-pci memory region address (4 registers) r/w 70 7fh ioregn [ 4:1 ] eisa-to-pci i/o region address (4 registers) r/w 80 81h btmr bios timer base address r/w 84h eltcr eisa latency timer control register r/w 85 87h e reserved e 88 8bh ptcr pceb test control registere do not write e 8c ffh e reserved e 3.1.1 videvendor identification register address offset: 00 01h default value: 8086h attribute: read only size: 16 bits the vid register contains the vendor identification number. this register, along with the device identification register, uniquely identify any pci device. writes to this register have no effect. bit description 15:0 vendor identification number: this is a 16-bit value assigned to intel. 3.1.2 didedevice identification register address offset: 02 03h default value: 0482h attribute: read only size: 16 bits the did register contains the device identification number. this register, along with the vid register, define the pceb. writes to this register have no effect. bit description 15:0 device identification number: this is a 16-bit value assigned to the pceb. 29
82375eb/sb 3.1.3 pcicmdepci command register address offset: 04 05h default value: 0007h attribute: read/write, read only size: 16 bits this 16-bit register contains pci interface control information. this register enables/disables pci parity error checking, enables/disables pceb bus master capability, and enables/disables the pceb to respond to pci- originated memory and i/o cycles. note that, for certain pci functions that are not implemented within the pceb, the control bits are still shown (labeled ``not supported''). bit description 15:9 reserved 8 serr y enable (serre)enot supportedero: function of this bit is to control the serr y signal. since the pceb does not implement the serr y signal, this bit always reads as 0 (disabled). 7 wait state control (wsc)enot supportedero: this bit controls insertion of wait-states for devices that do not meet the 33-10 pci specification. since pceb meets the 33-10 specification, this control function is not implemented. wsc is always read as 0. 6 parity error enable (perre)er/w: perre controls the pceb's response to pci parity errors. when perre e 1, the pceb asserts the perr y signal when a parity error is detected. when perre e 0, the pceb ignores any parity errors that it detects. after pcirst y , perre e 0 (parity checking disabled). 5 vga palette snoop (vgps)enot supportedero: this bit is intended only for specific control of pci-based vga devices and it is not applicable to the pceb. this bit is not implemented and always reads as 0. 4 memory write and invalidate enable (mwie)enot supportedero: this is an enable bit for using the memory write and invalidate command. the pceb doesn't support this command as a master. as a slave the pceb aliases this command to a memory write. this bit always reads as 0 (disabled). 3 special cycle enable (sce)enot supportedero: since this capability is not implemented, the pceb does not respond to any type of special cycle. this bit always reads as 0. 2 bus master enable (bme)er/w: me enables/disables the pceb's pci bus master capability. when bme e 0, the pceb bus master capability is disabled. this prevents the pceb from requesting the pci bus on behalf of eisa/isa masters, the dma, or the line buffers. when bme e 1, the bus master capability is enabled. this bit is set to 1 after pcirst y . 1 memory space enable (mse)er/w: this bit enables the pceb to accept pci-originated memory cycles. when mse e 1, the pceb responds to pci-originated memory cycles to the eisa bus. when mse e 0, the pceb does not respond to pci-originated memory cycles to the eisa bus (devsel y is inhibited). this bit is set to 1 (enabled for bios access) after pcirst y . 0 i/o space enable (iose)er/w: this bit enables the pceb to accept pci-originated i/o cycles. when iose e 1, the pceb responds to pci-originated i/o cycles. when iose e 0, the pceb does not respond to a pci i/o cycle (devsel y is inhibited), including i/o cycles bound for the eisa bus. this bit is set to 1 (i/o space enabled) after pcirst y . 30
82375eb/sb 3.1.4 pcistsepci status register address offset: 06 07h default value: 0200h attribute: read only, read/write clear size: 16 bits this 16-bit register provides status information for pci bus-related events. some bits are read/write clear. these bits are set to 0 whenever the register is written, and the data in the corresponding bit location is 1 (r/ wc). for example, to clear bit 12 and not affect any other bits, write the value 0001 e 0000 e 0000 e 0000b to this register. note that for certain pci functions that are not implemented in the pceb, the control bits are still shown (labeled ``not supported''). bit description 15 parity error status (perrs)er/wc: this bit is set to 1 whenever the pceb detects a parity error, even if parity error handling is disabled (as controlled by bit 6 in the pci command register). software sets perrs to 0 by writin ga1to this bit location. 14 serr y status (serrs)enot supported: this bit is used to indicate that a pci device asserted the serr y signal. the pceb does not implement this signal. serrs is always read as 0. 13 master abort status (ma)er/wc: when the pceb, as a master, generates a master abort, this bit is set to 1. software sets ma to 0 by writin ga1to this bit location. 12 received target abort status (rtas)er/wc: when the pceb, as a master, receives a target abort condition, this bit is set to 1. software sets rtas to 0 by writin ga1to this bit location. 11 signaled target abort status (stas)enot supported: this bit is set to 1 by a pci target device when they generate a target abort. since the pceb never generates a target abort, this bit is not implemented and will always be read as a 0. 10:9 devsel timing status (devt)ero: this read only field indicates the timing of the devsel y signal when pceb responds as a target. the pci specification defines three allowable timings for assertion of devsel y : 00b e fast, 01b e medium, and 10b e slow (11b is reserved). devt indicates the slowest time that a device asserts devsel y for any bus command, except configuration read and configuration write cycles. the pceb implements medium speed devsel y timing and, therefore, devt [ 10:9 ] e 01 when read. 8:0 reserved 3.1.5 riderevision identification register address offset: 08h default value: 03h (82375eb, a-2 stepping) 04h (82375SB, b-0 stepping) attribute: read only size: 8 bits this 8-bit register contains the device revision number of the pceb. writes to this register have no effect. bit description 7:0 revision identification number: this 8-bit value is the revision number of the pceb. 31
82375eb/sb 3.1.6 mltemaster latency timer register address offset: 0dh default value: 00h attribute: read/write size: 8 bits this 8-bit register contains the programmable value of the master latency timer for use when the pceb is a master on the pci bus. the granularity of the timer is 8 pci clocks. thus, bits [ 2:0 ] are not used and always read as 0s. bit description 7:3 count value: this 5-bit field contains the count value of the master latency timer, with a granularity of 8 pci clocks. for example, value 00101b provides a time-out period of 5x8 e 40 pci clocks. maximum count value is 11111b, which corresponds to 248 pci clocks. 2:0 reserved 3.1.7 pciconepci control register address offset: 40h default value: 20h attribute: read/write size: 8 bits this 8-bit register enables/disables the pceb's data buffers, defines the subtractive decoding sample point, and enables/disables response to the pci interrupt acknowledge cycle. note: the line buffers are typically enabled or disabled during system initialization. these buffers should not be dynamically enabled/disabled during runtime. otherwise, data coherency can be affected, if a buffer containing valid write data is disabled and then, later, re-enabled. bit description 7 reserved 6 eisa-to-pci line buffer enable (elbe): when elbe e 0, the eisa-to-pci line buffers are disabled and when elbe e 1, the eisa-to-pci line buffers are enabled. after pcirst y , the line buffers are disabled (elbe e 0). note that when elbe is set to 1, the line buffers are utilized for transfers to or from the regions defined by the reg [ 4:1 ] bits in the epmra register (offset 5ch). 5 interrupt acknowledge enable (iae): when iae e 0, the pceb decodes pci interrupt acknowledge cycles in a semi-subtractive manner. when there is data posted in the line buffers, the pceb intervenes in the pci interrupt acknowledge cycle by generating a retry. the pceb also initiates a buffer flush operation and will keep generating retries until the buffers are flushed. the pceb then subtractively decodes the pci interrupt acknowledge cycle in order to allow an external pci-based interrupt controller to respond with the vector. if no external pci-based interrupt controller has responded to the pci interrupt acknowledge cycle at the devsel y sampling point, the cycle is handled by the pceb in a subtractive decode manner. when iae e 1, the pceb positively decodes the interrupt acknowledge cycles and responds to the cycles in the normal fashion (i.e., uses the pereq y /inta y signal to fetch the vector from the esc, after the internal buffers are flushed). 32
82375eb/sb bit description 4:3 subtractive decoding sample point (sdsp): the sdsp field determines the devsel y sample point, after which an inactive devsel y results in the pceb forwarding the unclaimed pci cycle to the eisa bus (subtractive decoding). this setting should match the slowest device in the system. when the memcs y function is enabled, memcs y is sampled as well as an early indication of an eventual devsel y . bits [ 4:3 ] operation 00 slow sample point (default value) 01 typical sample point 10 reserved 11 reserved 2 reserved. this bit must be 0 when programming this register. 1:0 reserved 3.1.8 arbconepci arbiter control register address offset: 41h default value: 80h attribute: read/write size: 8 bits this register controls the operation of the pceb's internal pci arbiter. the register enables/disables auto- pereq y , controls the master retry timer, enables/disables cpu bus parking, controls bus lock, and enables/ disables the guaranteed access time (gat) mode for eisa/isa accesses. note: 1. for proper system operation, the master retry timer (bits [ 4:3 ] ) must not be disabled. this field defaults to 00 (disabled) and must be program to either 01, 10, or 11. 2. the pcmc host bridge device requires that bit 7 be set to 1 (default). however, other chip sets might need to have this function disabled to provide more optimum performance for eisa subsys- tems. this functionality is built-in to prevent starvation of pci agents (in particular, the host bridge, i.e., cpu) when eisa masters are performing transactions in the gat mode. if this function is dis- abled, the host bridge must be capable of generating the pci bus request, even when the host bus is not controlled by the cpu (cpu tri-stated all host bus signals, or even only address bus, in response to hold/ahold). the cpu pin that provides an indication of a request for the external bus (e.g. after cache miss) can be used by the host bridge to generate the request for the pci bus during gat mode operations, even when no address lines are driven by the cpu. 33
82375eb/sb bit description 7 auto-pereq y control (apc): apc enables/disables control of the auto-pereq y function when gat mode is enabled via bit 0 (gat e 1). when apc e 1 (and gat e 1), the pereq y signal is asserted whenever the eisahlda signal is asserted. when apc e 0, the pereq y signal is not automatically asserted but it will be activated upon pci bus request from any pci agent. after pcirst y , apc e 1 (enabled). see note. 6:5 reserved 4:3 master retry timer (mrt): this 2-bit field determines the number of pciclks after the first retry that a pci initiator's bus request will be masked. note that for proper system operation, this register must be programmed with either 01, 10, 11. bits [ 4:3 ] operation 00 timer disabled, retries never masked. (default) 01 retries unmasked after 16 pciclk's. 10 retries unmasked after 32 pciclk's. 11 retries unmasked after 64 pciclk's. 2 bus park (bp): when bp e 1, the pceb will park cpureq y on the pci bus when it detects the pci bus idle. if bp e 0, the pceb takes responsibility for driving ad, c/be y and par signals upon detection of bus idle state. after pcirst y ,bp e 0 (disabled). 1 bus lock (bl): when bl e 1, bus lock is enabled. the arbiter considers the entire pci bus locked upon initiation of any locked transaction. when bl e 0, resource lock is enabled. a locked agent is considered a locked resource and other agents may continue normal pci transactions. after pcirst y ,bl e 0 (disabled). 0 guaranteed access time (gat): when gat e 1, the pceb is configured for guaranteed access time mode. this mode guarantees the 2.1 m s chrdy time-out specification for the eisa/isa bus. when the pceb is a pci initiator on behalf of an eisa/isa master, the pci and main memory bus (host) are arbitrated for in serial and must be owned before the eisa/isa master is given ownership of the eisa bus. if the pceb is not programmed for guaranteed access time (gat e 0), the eisa/isa master is first granted the eisa bus, before the pci bus is arbitrated. after a pcirst y , gat e 0 (disabled). 3.1.9 arbpriepci arbiter priority control register address offset: 42h default value: 04h attribute: read/write size: 8 bits this register controls the operating modes of the pceb's internal pci arbiter. the arbiter consists of four arbitration banks that support up to six masters and three arbitration priority modesfixed priority, rotating priority and mixed priority modes. see section 5.4, pci bus arbitration for details on programming and using different arbitration modes. 34
82375eb/sb bit description 7 bank 3 rotate control: 1 e enable; 0 e disable 6 bank 2 rotate control: 1 e enable; 0 e disable 5 bank 1 rotate control: 1 e enable; 0 e disable 4 bank 0 rotate control: 1 e enable; 0 e disable 3:2 bank 2 fixed priority mode selecteb,a: ba 00 e bank0 l bank3 l bank1 10 e bank3 l bank1 l bank0 01 e bank1 l bank0 l bank3 11 e reserved 1 bank 1 fixed priority mode select: 1 e req3 y l cpureq y ;0 e cpureq y l req3 0 bank 0 fixed priority mode select: 1 e req0 y l pcebreq y ;0 e pcebreq y l req0 y . note that pcebreq y is a pceb internal signal. 3.1.10 arbprixepci arbiter priority control extension register address offset: 43h default value: 00h attribute: read/write size: 8 bits this register controls the fixed priority mode for bank 3 of the pceb's internal arbiter. the arbprix register is used in conjunction with the pci arbiter priority control (arbpri) register. bit description 7:1 reserved 0 bank 3 fixed priority mode select: 1 e req2 y l req1 y ;0 e req1 y l req2 y . 3.1.11 mcsconememcs y control register address offset: 44h default value: 00h attribute: read/write size: 8 bits the mcscon register provides the master enable for generating memcs y . this register also provides read enable (re) and write enable (we) attributes for two main memory regions (the 512 kbyte - 640 kbyte region and an upper bios region). pci accesses within the enabled regions result in the generation of memcs y . note that the 0-512 kbyte region does not have re and we attribute bits. the 0-512 kbyte region can only be disabled with the memcs y master enable bit (bit 4). note also, that when the re and we bits are both 0 for a particular region, the pci master can not access the corresponding region in main memory (memcs y is not generated for either reads or writes). 35
82375eb/sb bit description 7:5 reserved 4 memcs y master enable: when bit 4 e 1, the pceb asserts memcs y for all accesses to the defined memcs y region (as defined by the mcstom register and excluding the memory hole defined by the mcsboh and mcstoh registers), if the accessed location is in a region enabled by bits [ 3:0 ] of this register or in the regions defined by the mar1, mar2, and mar3 registers. when bit 4 e 0, the entire memcs y function is disabled and memcs y is never asserted. 3 write enable for 0f0000 0fffffh (upper 64 kbyte bios): when bit 3 e 1, the pceb generates memcs y for pci master memory write accesses to the address range 0f0000 0fffffh. when bit 3 e 0, the pceb does not generate memcs y for pci master memory write accesses to the address range 0f0000 0fffffh. 2 read enable for 0f0000 0fffffh (upper 64 kbyte bios): when bit 2 e 1, the pceb generates memcs y for pci master memory read accesses to the address range 0f0000 0fffffh. when bit 2 e 0, the pceb does not generate memcs y for pci master memory read accesses to the address range 0f0000 0fffffh. 1 write enable for 080000 09ffffh (512 640 kbyte): when bit 1 e 1, the pceb generates memcs y for pci master memory write accesses to the address range 080000 09ffffh. when bit 1 e 0, the pceb does not generate memcs y for pci master memory write accesses to the address range 080000 09ffffh. 0 read enable for 080000 09ffffh (512 640 kbyte): when bit 0 e 1, the pceb generates memcs y for pci master memory read accesses to the address range 080000 09ffffh. when bit 0 e 0, the pceb does not generate memcs y for pci master memory read accesses to the address range 080000 09ffffh. 3.1.12 mcsbohememcs y bottom of hole register address offset: 45h default value: 10h attribute: read/write size: 8 bits this register defines the bottom of the memcs y hole. memcs y is not generated for accesses to addresses within the hole defined by this register and the mcstoh register. the hole is defined by the following equation: toh t address t boh. toh is the top of the memcs y hole defined by the mcstoh register and boh is the bottom of the memcs y hole defined by this register. for example, to program the boh at 1 mbyte, the value of 10h should be written to this register. to program the boh at 2 mbyte a 64 kbyte this register should be programmed to 21h. to program the boh at 8 mbyte this register should be programmed to 80h. when the toh k boh the hole is disabled. if toh e boh, the hole size is 64 kbytes. it is the responsibility of the programmer to guarantee that the boh is at or above 1 mb. ad [ 31:24 ] must be 0's for the hole, meaning the hole is restricted to be under the 16 mbyte boundary. the default value for the boh and toh disables the hole. bit description 7:0 bottom of memcs y hole: bits [ 7:0 ] correspond to address lines ad [ 23:16 ] , respectively. 36
82375eb/sb 3.1.13 mcstohememcs y top of hole register address offset: 46h default value: 0fh attribute: read/write size: 8 bits this register defines the top of the memcs y hole. memcs y is not generated for accesses to addresses within the hole defined by this register and the mcsboh register. the hole is defined by the following equation: toh t address t boh. toh is the top of the memcs y hole defined by this register and boh is the bottom of the memcs y hole defined by the mcsboh register. for example, to program the toh at 1 mbyte a 64 kbyte, this register should be programmed to 10h. to program the toh at 2 mbyte a 128 kbyte this register should be programmed to 21h. to program the toh at 12 mbyte this register should be programmed to bfh. when the toh k boh the hole is disabled. if toh e boh, the hole size is 64 kbytes. it is the responsibility of the programmer to guarantee that the toh is above 1 mbyte. ad [ 31:24 ] must be 0's for the hole, meaning the hole is restricted to be under the 16 mbyte boundary. the default value for the boh and toh disables the hole. bit description 7:0 top of memcs y hole: bits [ 7:0 ] correspond to address lines ad [ 23:16 ] , respectively. 3.1.14 mcstomememcs y top of memory register address offset: 47h default value: 00h attribute: read/write size: 8 bits this register determines memcs y top of memory boundary. the top of memory boundary ranges from 2 mbytes-1 to 512 mbytes-1, in 2 mbyte increments. this register is typically set to the top of main memory. accesses t 1 mbyte and s top of memory boundary results in the assertion of the memcs y signal (unless the address resides in the hole programmed via the mcsboh and mcstoh registers). a value of 00h sets top of memory at 2 mbytes-1 (including the 2 mbyte-1 address). a value of ffh sets the top of memory at 512 mbyte-1 (including the 512 mbyte-1 address). bit description 7:0 top of memcs y memory boundary: bits [ 7:0 ] correspond to address lines ad [ 28:21 ] , respectively. 37
82375eb/sb 3.1.15 eadc1eeisa address decode control 1 register address offset 48 49h default value: 0001h attribute: read/write size: 16 bits this 16-bit register specifies eisa-to-pci mapping of the 0-1 mbyte memory address range. for each bit position, the memory block is enabled if the corresponding bit e 1 and is disabled if the bit e 0. eisa or dma memory cycles to the enabled blocks result in the eisa cycle being forwarded to the pci bus. for disabled memory blocks, the eisa memory cycle is not forwarded to the pci bus. bit description 15 880 896 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 14 864 880 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 13 848 864 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 12 832 848 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 11 816 832 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 10 800 816 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 9 784 800 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 8 768 784 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 7:3 reserved 2 640 768 kbytes vga memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 1 512 640 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 0 0 512 kbytes memory enable: eisa-to-pci mapping for this memory space is enabled when this bit is 1 and disabled when this bit is 0. 38
82375eb/sb 3.1.16 iorteisa i/o recovery timer register address offset: 4ch default value: 56 attribute: read/write size: 8 bits the i/o recovery logic is used to guarantee a minimum amount of time between back-to-back 8-bit and 16-bit pci-to-isa i/o slave accesses. these minimum times are programmable. the i/o recovery mechanism in the pceb is used to add recovery delay between pci-originated 8-bit and 16- bit i/o cycles to isa devices. the delay is measured from the rising edge of the eisa command signal (cmd y ) to the falling edge of the next eisa command. the delay is equal to the number of eisa bus clocks (bclks) that correspond to the value contained in bits [ 1:0 ] for 16-bit i/o devices and in bits [ 5:3 ] for 8-bit i/o devices. note that no additional delay is inserted for back-to-back i/o ``sub-cycles'' generated as a result of byte assembly or disassembly. this register defaults to 8- and 16-bit recovery enabled with two clocks of i/o recovery. bit description 7 reserved 6 bit i/o recovery enable: this bit enables the recovery times programmed into bits 0 and 1 of this register. when this bit is set to 1, the recovery times shown for bits 5-3 are enabled. when this bit is set to 0, recovery times are disabled. 5:3 8-bit i/o recovery times: this 3-bit field defines the recovery times for 8-bit i/o. programmable delays between back-to-back 8-bit pci cycles to isa i/o slaves is shown in terms of eisa clock cycles (bclk). the selected delay programmed into this field is enabled/disabled via bit 6 of this register. bits [ 5:3 ] bclk 001 1 010 2 011 3 100 4 101 5 110 6 111 7 000 8 2 16-bit i/o recovery enable: this bit enables the recovery times programmed into bits 0 and 1 of this register. when this bit is set to 1, the recovery times shown for bits 0 and 1 are enabled. when this bit is set to 0, recovery times are disabled. 1:0 16-bit i/o recovery times: this 2-bit field defines the recovery time for 16-bit i/o. programmable delays between back-to-back 16-bit pci cycles to isa i/o slaves is shown in terms of eisa clock cycles (bclk). the selected delay programmed into this field is enabled/disabled via bit 2 of this register. bits [ 1:0 ] b clk 01 1 10 2 11 3 00 4 39
82375eb/sb 3.1.17 mar1ememcs y attribute register y 1 address offset: 54h default value: 00h attribute: read/write size: 8 bits reeread enable . when the re bit (bit 6, 4, 2, 0) is set to a 1, the pceb generates memcs y for pci master, dma, or eisa master memory read accesses to the corresponding segment in main memory. when the re bit is set to a 0, the pceb does not generate memcs y for pci master, dma, or eisa master memory read accesses to the corresponding segment. when the re and we bits are both 0 (or bit 4 in the memcs y control register is set to a 0-disabled), the pci master, dma, or eisa master can not access the correspond- ing segment in main memory. weewrite enable . when the we bit (bit 7, 5, 3, 1) is set to a 1, the pceb generates memcs y for pci master, dma, or eisa master memory write accesses to the corresponding segment in main memory. when this bit is set to a 0, the pceb does not generate memcs y for pci master, dma, or eisa master memory write accesses to the corresponding segment. when the re and we bits are both 0 (or bit 4 in the memcs y control register is set to a 0-disabled), the pci master, dma, or eisa master can not access the correspond- ing segment in main memory. bit description 7 0cc000 0cffffh add-on bios: we: 1 e enable; 0 e disable 6 0cc000 0cffffh add-on bios: re: 1 e enable; 0 e disable 5 0c8000 0cbfffh add-on bios: we: 1 e enable; 0 e disable 4 0c8000 0cbfffh add-on bios: re: 1 e enable; 0 e disable 3 0c4000 0c7fffh add-on bios: we: 1 e enable; 0 e disable 2 0c4000 0c7fffh add-on bios: re: 1 e enable; 0 e disable 1 0c0000 0c3fffh add-on bios: we: 1 e enable; 0 e disable 0 0c0000 0c3fffh add-on bios: re: 1 e enable; 0 e disable 3.1.18 mar2ememcs y attribute register y 2 address offset: 55h default value: 00h attribute: read/write size: 8 bits reeread enable . when the re bit (bit 6, 4, 2, 0) is set to a 1, the pceb generates memcs y for pci master, dma, or eisa master memory read accesses to the corresponding segment in main memory. when this bit is set to a 0, the pceb does not generate memcs y for pci master, dma, or eisa master memory read accesses to the corresponding segment. when the re and we bits are both 0 (or bit 4 in the memcs y control register is set to a 0-disabled), the pci master, dma, or eisa master can not access the correspond- ing segment in main memory. 40
82375eb/sb weewrite enable . when the we bit (bit 7, 5, 3, 1) is set to a 1, the pceb generates memcs y for pci master, dma, or eisa master memory write accesses to the corresponding segment in main memory. when this bit is set to a 0, the pceb does not generate memcs y for pci master, dma, or eisa master memory write accesses to the corresponding segment. when the re and we bits are both 0 (or bit 4 in the memcs y control register is set to a 0-disabled), the pci master, dma, or eisa master can not access the correspond- ing segment in main memory. bit description 7 0dc000 0dffffh add-on bios: we: 1 e enable; 0 e disable 6 0dc000 0dffffh add-on bios: re: 1 e enable; 0 e disable 5 0d8000 0dbfffh add-on bios: we: 1 e enable; 0 e disable 4 0d8000 0dbfffh add-on bios: re: 1 e enable; 0 e disable 3 0d4000 0d7fffh add-on bios: we: 1 e enable; 0 e disable 2 0d4000 0d7fffh add-on bios: re: 1 e enable; 0 e disable 1 0d0000 0d3fffh add-on bios: we: 1 e enable; 0 e disable 0 0d0000 0d3fffh add-on bios: re: 1 e enable; 0 e disable 3.1.19 mar3ememcs y attribute register y 3 address offset: 56h default value: 00h attribute: read/write size: 8 bits reeread enable . when the re bit (bit 6, 4, 2, 0) is set to a 1, the pceb generates memcs y for pci master, dma, eisa master memory read accesses to the corresponding segment in main memory. when this bit is set to a 0, the pceb does not generate memcs y for pci master, dma, or eisa master memory read accesses to the corresponding segment. when the re and we bits are both 0 (or bit 4 in the memcs y control register is set to a 0-disabled), the pci master can not access the corresponding segment in main memory. weewrite enable . when the we bit (bit 7, 5, 3, 1) is set to a 1, the pceb generates memcs y for pci master , dma, eisa master memory write accesses to the corresponding segment in main memory. when this bit is set to a 0, the pceb does not generate memcs y for pci master, dma, or eisa master memory write accesses to the corresponding segment. when the re and we bits are both 0 (or bit 4 in the memcs y control register is set to a 0-disabled), the pci master can not access the corresponding segment in main memory. 41
82375eb/sb bit description 7 0ec000 0effffh bios extension: we: 1 e enable; 0 e disable 6 0ec000 0effffh bios extension: re: 1 e enable; 0 e disable 5 0e8000 0ebfffh bios extension: we: 1 e enable; 0 e disable 4 0e8000 0ebfffh bios extension: re: 1 e enable; 0 e disable 3 0e4000 0e7fffh bios extension: we: 1 e enable; 0 e disable 2 0e4000 0e7fffh bios extension: re: 1 e enable; 0 e disable 1 0e0000 0e3fffh bios extension: we: 1 e enable; 0 e disable 0 0e0000 0e3fffh bios extension: re: 1 e enable; 0 e disable 3.1.20 pdconepci decode control register address offset: 58h default value: 00h attribute: read/write size: 8 bits this register enables/disables positive decode of pci accesses to the ide and 8259 locations residing in the expansion bus subsystem. for the 82374sb, this register controls the mode of address decode (subtractive or negative) for memory cycles on the pci bus. subtractive decoding: pci memory cycles that are not claimed on the pci bus (i.e., devsel y inactive) are forwarded to the eisa bus. this is the default on power up. negative decoding (82374sb only): pci memory cycles that are not mapped to one of the regions defined by a, b, or c below, are immediately forwarded to the eisa bus (i.e. without waiting for devsel y time-out). pci memory cycles that are decoded to one of the four programmable pci memory regions, but are not claimed (devsel y negated), are forwarded to the eisa bus by subtractive decode. a. main memory locations defined by the memcs y mapping (mcscon, mcsboh, mcstoh, mcstom, mar1, mar2, and mar3 registers). b. the enabled video frame buffer region, 0a0000 0bffffh (as indicated by bit 2 of the eadc1 register). c. the four programmable pci memory regions (defined by the memregn [ 4:1 ] registers). note: if there are devices on the pci that are not mapped into any of the regions defined by a, b, or c, then negative decoding can not be used. 42
82375eb/sb bit description 7:6 reserved 5 8259 decode control (8259dc): this bit enables/disables positive decode of 8259 locations 0020h, 0021h, 00a0h and 00a1h. when this bit is 1, positive decode for these locations are enabled. when this bit is 0, positive decode for these locations is disabled. after reset, this bit is 0. note that if positive decode is disabled, these 8259 locations can still be accessed via subtractive decode. 4 ide decode control (idedc): this bit enables/disables positive decode of ide locations 1f0 1f7h (primary) or 170 177h (secondary) and 3f6h,3f7h (primary) or 376h,377h (secondary). when idedc e 0, positive decode is disabled. when idecd e 1, positive decode is enabled. after reset, this bit is 0. note that if positive decode is disabled, these ide locations can still be accessed via subtractive decode. 3:1 reserved 0 82375eb: reserved. must be 0 when programming this register. 82375SB: pci memory address decoding mode (pmad): this bit selects between subtractive and negative decoding. when pmad e 1, negative decoding is selected. when pmad e 0, subtractive decoding is selected. after reset, this bit is 0. 3.1.21 eadc2eeisa address decode control extension register address offset: 5ah default value: 00h attribute: read/write size: 8 bits this register specifies eisa-to-pci mapping for the 896 kbyte to 1 mbyte memory address range (bios). if this memory block is enabled, eisa memory accesses in this range will result in the eisa cycles being forwarded to the pci bus. (note that enabling this block is necessary if bios resides within the pci and not within the eisa subsystem.) this register also defines mapping for the 16 mbyte - 64 kbyte to 16 mbyte memory address range. this mapping is important if the bios is aliased at the top 64 kbytes of 16 mbytes. if the region is enabled and this address range is within the hole defined by the mcsboh and mcstoh registers or above the top of main memory defined by the mcstom register, the eisa cycle is forwarded to the pci. 43
82375eb/sb bit description 7:6 reserved 5 top 64 kbyte of 16 mbyte memory space enable (ff0000 ffffffh): this memory block is enabled when this bit is 1 and disabled when this bit is 0. 4 960 kbytese1 mbyte memory space enable (0f0000 0fffffh): this memory block is enabled when this bit is 1 and disabled when this bit is 0. 3 944 960 kbyte memory space enable (0ec000 0effffh): this memory block is enabled when this bit is 1 and disabled when this bit is 0. 2 928 944 kbyte memory space enable (0e8000 0ebfffh): this memory block is enabled when this bit is 1 and disabled when this bit is 0. 1 912 928 kbyte memory space enable (0e4000 0e7fffh): this memory block is enabled when this bit is 1 and disabled when this bit is 0. 0 896 912 kbyte memory space enable (0e0000 0e3fffh): this memory block is enabled when this bit is 1 and disabled when this bit is 0. 3.1.22 epmraeeisa-to-pci memory region attributes register address offset: 5ch default value: 00h attribute: read/write size: 8 bits this register defines buffering attributes for eisa accesses to pci memory regions specified by mem- regn [ 4:1 ] registers. when an epmra bit is 1 (and the line buffers are enabled via the pcicon register), eisa accesses to the corresponding pci memory region are performed in buffered mode. in buffered mode, read prefetching and write posting/assembly are enabled. when an epmra bit is 0, eisa accesses to the corresponding pci memory region are performed in non-buffered mode. in non-buffered mode, a buffer by- pass path is used to complete the transaction. note: 1. using buffered mode for eisa accesses to pci memory regions that contain memory-mapped i/o devices can cause unintended side effects. in buffered mode, strong ordering is not preserved within a dword. if the order of the writes to an i/o device is important, non-buffered mode should be used. also, read-prefetch can cause unintended changes of status registers in the memory-mapped i/o device. 2. the line buffers are typically enabled or disabled during system initialization. these buffers should not be dynamically enabled/disabled during runtime. otherwise, data coherency can be affected, if a buffer containing valid write data is disabled and then, later, re-enabled. 44
82375eb/sb bit description 7:4 reserved 3 region 4 attribute (reg-4): eisa accesses to this pci memory region are buffered when this bit is 1 and non-buffered when this bit is 0. if the line buffers are disabled via the pcicon register (bit 6), buffering is disabled, regardless of the value of this bit. 2 region 3 attribute (reg-3): eisa accesses to this pci memory region are buffered when this bit is 1 and non-buffered when this bit is 0. if the line buffers are disabled via the pcicon register (bit 6), buffering is disabled, regardless of the value of this bit. 1 region 2 attribute (reg-2): eisa accesses to this pci memory region are buffered when this bit is 1 and non-buffered when this bit is 0. if the line buffers are disabled via the pcicon register (bit 6), buffering is disabled, regardless of the value of this bit. 0 region 1 attribute (reg-1): eisa accesses to this pci memory region are buffered when this bit is 1 and non-buffered when this bit is 0. if the line buffers are disabled via the pcicon register (bit 6), buffering is disabled, regardless of the value of this bit. 3.1.23 memregn [ 4:1 ] eeisa-to-pci memory region address registers address offset: 60-63h (memory region 1) 64-67h (memory region 2) 68-6bh (memory region 3) 6c-6fh (memory region 4) default value: 0000ffffh attribute: read/write size: 32 bits these 32-bit registers provide four windows for eisa-to-pci memory accesses. each window defines a posi- tively decoded programmable address region for mapping eisa memory space to the corresponding pci memory space. this base and limit address fields define the size and location of the region within the 4 gbyte pci memory space. the base and limit addresses can be aligned on any 64 kbyte boundary and each region can be sized in 64 kbyte increments, up to the theoretical maximum size of 4 gbyte. the default values of this register ensure that the regions are initially disabled. a region is selected based on the following formula: base address s address s limit address. bit description 31:16 memory region limit address: for eisa-to-pci accesses, bits [ 31:16 ] correspond to address lines la [ 31:16 ] on the eisa bus and ad [ 31:16 ] on the pci bus. this field determines the limit address of the memory region within the 4 gbyte pci memory space. 15:0 memory region base address: for eisa-to-pci accesses, bits [ 15:0 ] correspond to address lines la [ 31:16 ] on the eisa bus and ad [ 31:16 ] on the pci bus. this field determines the starting address of the memory region within the 4 gbyte pci memory space. 45
82375eb/sb 3.1.24 ioregn [ 4:1 ] eeisa-to-pci i/o region address registers address offset: 70-73h (i/o region 1) 74-77h (i/o region 2) 78-7bh (i/o region 3) 7c-7fh (i/o region 4) default value: 0000fffch attribute: read/write size: 32 bits these 32-bit registers provide four windows for eisa-to-pci i/o accesses. the windows define positively decoded programmable address regions for mapping eisa i/o space to the corresponding pci i/o space. each register determines the starting and limit addresses of the particular region within the 64 kbyte pci i/o space. the base and limit addresses can be aligned on any dword boundary and each region can be sized in dword increments (32-bits) up to the theoretical maximum size of 64 kbyte. default values for the base and limit fields ensure that the regions are initially disabled. the i/o regions are selected based on the following formula: base address s address s limit address. bit description 31:18 i/o region limit address: for eisa-to-pci i/o accesses, bits [ 31:18 ] correspond to address lines la [ 15:2 ] on the eisa bus and ad [ 15:2 ] on the pci bus. this field determines the limit address of the region within the 64 kbyte pci i/o space. 17:16 reserved 15:2 i/o region base address: for eisa-to-pci i/o accesses, bits [ 15:2 ] correspond to address lines la [ 15:2 ] on the eisa bus and ad [ 15:2 ] on the pci bus. this field determines the starting address of the region within the 65 kbyte pci i/o space. 1:0 reserved 3.1.25 btmrebios timer base address register address offset: 80 81h default value: 0078h attribute: read/write size: 16 bits this 16-bit register determines the base address for the bios timer register located in pci i/o space. the bios timer resides in the pceb and is the only internal resource mapped to pci i/o space. the base address can be set at dword boundaries anywhere in the 64 kbyte pci i/o space. this register also provides the bios timer access enable/disable control bit. 46
82375eb/sb bit description 15:2 bios timer base address: bits [ 15:2 ] correspond to pci address lines ad [ 15:2 ] . 1 reserved 0 bios timer enable (bte): when bte e 1, the bios timer is enabled. when bte e 0, the bios timer is disabled. the default is 0 (disabled). 3.1.26 eltcreeisa latency timer control register address offset: 84h default value: 7fh attribute: read/write size: 8 bits this register provides the control for the eisa latency timer (elt). the register holds the initial count value used by the elt. the elt uses the pci clock for counting . the elt time-out period is equal to: elt timeout e value eltcr(7:0) xt pciclck [ ns ] where: tpciclk e 30 ns at 33 mhz (40 ns at 25 mhz). therefore, a maximum elt time-out period at 33 mhz is 256 x 30 ns e 7.68 m s. the value written into this register is system dependent. it should be based on pci latency characteristics controlled by the pci master latency timer mechanism and on eisa bus arbitration/latency parametrics. a typical value corresponds to the elt time-out period of 1 3 m s. when the value in the eltcr register is 0, the elt mechanism is disabled. the eltcr register must be initialized before eisa masters or dma are enabled. bit description 7:0 eisa latency timer count value: bits [ 7:0 ] contain the initial count value for the eisa latency timer. when this field contains 00h, the eisa latency timer is disabled. 3.2 i/o registers the only pceb internal resource mapped to the pci i/o space is the bios timer register. 3.2.1 biostmebios timer register register location: programmable i/o address location (dword aligned) default value: 00 00 xx xxh attribute: read/write size: 32 bits this 32-bit register is mapped to the pci i/o space location determined by the value in the btmr register. bit 0 of btmr must be 1 to enable access to the bios timer. the bios timer clock is derived from the eisa bus clock (bclk); either 8.25 or 8.33 mhz depending on the pci clock. bclk is divided by 8 to obtain the timer clock of 1.03 or 1.04 mhz. if a frequency other than 33 mhz or 25 mhz is used for pci clock, the bios timer clock will be affected. (it will always keep the same relation to the bclk, i.e. 1:4 or 1:3, depending on the clock divisor.) the bios timer is only accessible from the pci bus and is not accessible from the eisa bus. 47
82375eb/sb after data is written into bios timer register (be1 y and/or be0 y must be asserted), the bios timer starts decrementing until it reaches zero. it ``freezes'' at zero until the new count value is written. bit description 31:16 reserved 15:0 bios timer count value: the initial count value is written to bits [ 15:0 ] to start the timer. the value read is the current value of the bios timer. 4.0 address decoding conceptually, the pceb contains two programmable address decoders: one to decode pci bus cycles that need to be forwarded to the eisa bus or serviced internally and the other to decode eisa bus cycles that need to be forwarded to the pci bus. two decoders permit the pci and eisa buses to operate concurrently (figure 2). the pceb can be programmed to respond to certain pci memory or i/o region accesses as well as configuration space accesses to the pceb's internal configuration registers. pceb address decoding is dis- cussed in section 4.1. the eisa address decoder decodes eisa bus cycles generated by the bus master (dma controller, isa compatible master, or eisa compatible master) that need to be forwarded to the pci bus. the eisa decode logic can be programmed to respond to certain memory or i/o region accesses. 48
82375eb/sb 290477 44 figure 2. block diagram of address decoder the pceb provides three methods for decoding the current pci bus cycle. the pceb can use positive, subtractive, or negative (82374sb only) decoding for these cycles, depending on the type of cycle, actions on the pci bus, and programming of the pceb registers. for eisa bus cycles, only positive decoding is used. 1. positive decoding . with positive decoding, the pci/eisa bus cycle address is compared to the corre- sponding address ranges set up in the pceb for positive decode. a match causes the pceb decode logic to immediately service the cycle. the pceb can be programmed (via the configuration registers) to positively decode selected memory or i/o accesses on both the pci bus and eisa bus. depending on the program- ming of the internal registers, the pceb provides positive decoding for pci accesses to selected address ranges in memory and i/o spaces and for eisa accesses to selected address ranges in memory and i/o spaces. note that the decoding method for pci accesses to the pceb internal registers (configuration and i/o space registers) is not programmable and these accesses are always positively decoded. 49
82375eb/sb 2. subtractive decoding . for pci memory or i/o cycles, the pceb uses subtractive decoding (or negative decoding, described in y 3 of this list for the 82375SB) to respond to addresses that are not positively decoded. with subtractive decoding, if a memory or i/o cycle is not claimed on the pci bus (via devsel y ), the pceb forwards the cycle to the eisa bus. the pceb waits a programmable number of pciclks (1 to 3 pciclks, as selected via the pcicon register) for a pci agent to claim the cycle. if the cycle is not claimed within the programmed number of pciclks (devsel y time-out), the pceb claims the cycle (asserts devsel y ) and forwards it to the eisa bus. note that the number of pciclks for a devsel y time-out should be programmed to accommodate the slowest pci bus device. 3. negative decoding . for the 82375SB, negative decoding is a programmable option (via the pdcon register) that is only used for pci memory cycles. with negative decoding, a pci memory cycle that is not positively decoded by the pceb as a main memory area (one of the memcs y generation areas) and is not in one of the four programmable eisa-to-pci memory regions (defined by memregn [ 4:1 ] ) is immediately forwarded to the eisa bus. this occurs without waiting for a devsel y time-out to see if the cycle is going to be claimed on the pci bus. thus, negative decoding can reduce the latency incurred by waiting for a devsel y time-out that is associated with subtractive decoding. this increases throughput to the eisa bus for unclaimed pci memory cycles. if the devsel y time-out is set to a 2 pciclktime-out, the latency is reduced by 1 pciclk and fo r a 3 pciclk time-out, the latency is reduced by 2 pciclks. for more information on negative (and subtractive) decoding, see section 4.1.1.3, subtractively and negatively de- coded cycles to eisa. note that negative decoding imposes a restriction on the pci system memory address map. pci memory- mapped devices are restricted to one of the four programmable eisa-to-pci regions (memregn [ 4:1 ] ). these regions always use subtractive decoding to forward an unclaimed cycle to the eisa bus, even if negative decoding is enabled. locating devices in these regions ensures that the pci device has the allotted number of programmed pciclks (devsel y time-out) to respond with devsel y . further, since the pceb does not negatively decode i/o space addresses, enabling this feature does not impose restric- tions on devices that are mapped to pci i/o space. 4.1 pci cycle address decoding the pceb decodes addresses presented on the multiplexed pci address/data bus during the address bus phase. ad [ 31:0 ] and the byte enables (c/be [ 3:0 ] y during the data phase) are used for address decoding. c/be [ 3:0 ] y are used during the data phase to indicate which byte lanes contain valid data. for memory cycles, the pci address decoding is always a function of ad [ 31:2 ] . in the case of i/o cycles, all 32 address bits (ad [ 31:0 ] ) are used to provide addressing with byte granularity. for configuration cycles, only a subset of the address lines carry address information. the pceb decodes the following pci cycle addresses based on the contents of the relevant programmable registers: 1. positively decodes pceb configuration registers. 2. positively decodes i/o addresses contained within the pceb (bios timer). 3. positively decodes the following compatibility i/o registers to improve performance: a) interrupt controller (8259) i/o registers contained within the esc to optimize interrupt processing, if enabled through the pdcon register, b) ide registers, if enabled through the pdcon register. 4. positively decodes four programmable memory address regions contained within the pci memory space. 50
82375eb/sb 5. positively decodes memory addresses for selected regions of main memory (located behind the host/pci bridge). when a main memory address is positively decoded, the pceb asserts the memcs y signal to the host/pci bridge. the pceb does not assert devsel y . 6. subtractively or negatively (82375SB only) decodes cycles to the eisa bus (see section 4.1.1, memory space address decoding) . note: a pci requirement is that, upon power-up, pci agents do not respond to any address. typically, the only access to a pci agent is through the idsel configuration mechanism until the agent is enabled during initialization. the pceb/esc subsystem is an exception to this since it controls access to the bios boot code. the pceb subtractively decodes bios accesses and passes the accesses to the eisa bus where the esc generates bios chip select. this allows bios memory to be located in the pci memory space. 4.1.1 memory space address decoding the mcscon, mcstop, mcsboh, mcstom, and pdcon registers are used to program the decoding for pci bus memory cycles. 4.1.1.1 main memory decoding (memcs y ) the pceb supports positive decode of main memory areas by generating a memory chip select signal (memcs y ) to the host/pci bridge that contains the main memory interface control. the pceb supports memory sizes up to 512 mbytes (i.e., the pceb can be programmed to generate memcs y for this memory range). for pci memory accesses above 512 mbyte (512 mbytes to 4 gbytes), the pceb does not generate memcs y and unclaimed cycles are forwarded to the eisa bus using either subtractive or negative (82374sb only) decoding. if a memory region is enabled, accesses to that region are positively decoded and result in the pceb asserting memcs y . if a memory region is disabled, accesses do not generate memcs y and the cycle is either subtractively or negatively (82374sb only) decoded and forwarded to the eisa bus. within the 512 mbyte main memory range, the pceb supports the enabling/disabling of sixteen individual memory ranges (figure 3). fourteen of the ranges are within the 640 kbyte - 1 mbyte area and have read enable (re) and write enable (we) attributes. these attributes permit positive address decoding for reads and writes to be independently enabled/disabled. this permits, for example, an address range to be positively decoded for a memory read and subtractively or negatively (82374sb only) decoded to the eisa bus for a memory write. the fifteenth range (0 512 kbyte) and sixteenth range (programmable limit address from 2 mbyte up to 512 mbyte on 2 mbyte increments) can be enabled or disabled but do not have re/we attributes. a seven- teenth range is available that identifies a memory hole. addresses within this hole will not generate a memcs y . these memory address ranges are: # 0 512 kbyte # 512 640 kbyte # 640 768 kbytes (vga memory page) # 960 kbyte to 1 mbyte (bios area) # 768 896 kbyte in 16 kbyte segments (total of 8 segments) # 896 960 kbyte in 16 kbyte segments (total of 4 segments) # 960 kbyte to 1 mbyte (upper bios area) # 1 512 mbyte in 2 mbyte increments. # programmable memory hole in 64 kbyte increments between 1 mbyte and 16 mbyte. 51
82375eb/sb 290477 45 note: shaded areas represent main memory decode regions for memcs y . figure 3. memcs y decode areas table 2 summarizes the attribute registers used in memcs y decoding. the mcscon, mar1, mar2, and mar3 registers are used to assign re/we attributes to a particular memory range. the memcs y hole is programmed using the mcstoh and mcsboh registers. the region above 1 mbyte is programmed using the mcstom register. the region from 0 512 kbyte is enabled/disabled using bit 4 of the mcscon regis- ter. mcscon bit 4 is also used to enable and disable the entire memcs y function. 52
82375eb/sb table 2. read enable/write enable attributes for memcs y decoding memory attribute registers attribute memory segments comments (register bits are shown in brackets) mcscon [ 1:0 ] we re 080000 09ffffh 512k to 640k mcscon [ 3:2 ] we re 0f0000 0fffffh bios area mar1 [ 1:0 ] we re 0c0000 0c3fffh add-on bios mar1 [ 3:2 ] we re 0c4000 0c7fffh add-on bios mar1 [ 5:4 ] we re 0c8000 0cbfffh add-on bios mar1 [ 7:6 ] we re 0cc000 0cffffh add-on bios mar2 [ 1:0 ] we re 0d0000 0d3fffh add-on bios mar2 [ 3:2 ] we re 0d4000 0d7fffh add-on bios mar2 [ 5:4 ] we re 0d8000 0dbfffh add-on bios mar2 [ 7:6 ] we re 0dc000 0dffffh add-on bios mar3 [ 1:0 ] we re 0e0000 0e3fffh bios extension mar3 [ 3:2 ] we re 0e4000 0e7fffh bios extension mar3 [ 5:4 ] we re 0e8000 0ebfffh bios extension mar3 [ 7:6 ] we re 0ec000 0effffh bios extension the pceb generates memcs y from the decode of the pci address. memcs y is asserted during the first data phase as indicated in the figure 4. memcs y is only asserted for one pci clock period. the pceb does not take any other action as a result of this decode, except to generate memcs y . it is the responsibility of the device using the memcs y signal to generate devsel y , trdy y and any other cycle response. the device using the memcs y will always generate devsel y on the next clock. this fact can be used to avoid an extra clock delay in the subtractive decoder described in the next section. 290477 46 note: since memcs y is point-to-point (a sideband signal), the signal meets the guaranteed setup time to clock edge 3 (and clock edge 4). this fast generation of memcs y prevents the penalty caused by the decoding delay. figure 4. memcs y generation 53
82375eb/sb 4.1.1.2 bios memory space the bios memory space is subtractively decoded. bios is typically ``shadowed'' after configuration and initialization is complete. thus, negative decoding is not implemented for accesses to the bios eprom residing on the expansion bus. the esc decoder supports bios space up to 512 kbytes. the standard 128 kbyte bios memory space is 000e 0000h to 000f ffffh (top of 1 mbyte), and aliased at fffe 0000h to ffff ffffh (top of 4 gbyte) and ffee 0000h to ffef ffffh (top of 4 gbyte -1 mbyte). these aliased regions account for the cpu reset vector and the uncertainty of the state of the a20gate when a software reset occurs. note that the esc component contains the bios space decoder that provides address aliasing for bios at 4 gbyte or 4 gbyt e - 1 mbyte by ignoring the la20 address line. the additional 384 kbyte bios memory space at fff8 0000h to fffd ffffh is known as the enlarged bios memory space. note that eisa memory (other than bios) must not reside within the address range from 4 gbyte -1.5 mbyte to 4 gbyt e - 1 mbyte and from 4 gbyte - 512 kbyte to 4 gbyte to avoid conflict with bios space. since the bios device is 8 or 16 bits wide and typically has very long access times, pci burst reads from bios space invoke a disconnect target termination (using the stop y signal) after the first data transaction in order to meet the pci incremental latency guidelines. 4.1.1.3 subtractively and negatively decoded cycles to eisa the pceb uses subtractive and negative (82375SB only) decoding to forward pci bus cycles to the eisa bus. these modes are defined at the beginning of section 4.0. bit 0 of the pdcon register selects between negative and subtractive decoding. for subtractive decoding on the 82375eb, the devsel y sample point (figure 5) can be configured to two different settings by programming the pcicon register. if the ``typical'' point is selected, devsel y is sam- pled at t, and, if inactive, the cycle is forwarded to eisa. if the ``slow'' point is selected, devsel y is sampled at f, t, and s. the sample point should be configured to match the slowest pci device in the system. this programmable capability (t or s) permits systems to optimize the devsel y time-out latency to the response capabilities of the pci devices in the system. the sample point selected must accommodate the slowest device on the pci bus. note that when these unclaimed cycles are forwarded to the eisa bus, the pceb drives the devsel y active. an active memcs y always results in an active devsel y on the ``typical'' sample point. for subtractive decoding on the 82375SB, the devsel y sample point can be configured to two different settings by programming the pcicon register (slow and typical). 54
82375eb/sb 290477 47 note: fast devsel y is not supported on the 82378eb or 82375SB. figure 5. devsel y sample points only unclaimed pci cycles within the memory address range from 0 to 4 gbyte and i/o address range from 0 to 64 kbyte are forwarded to eisa. unclaimed pci i/o cycles to address locations above 64 kbytes are not forwarded to the eisa bus and the pceb does not respond with devsel y . in this case, these unclaimed cycles cause the master to terminate the pci cycle with a master abort. for the 82374sb, if negative decoding is used, the pceb begins the pci-to-eisa cycle forwarding process at the ``fast'' sample point. compared to the system that uses subtractive decode at the ``slow'' sample point, negative decoding reduces the decoding overhead by 2 pci clock cycles. in the case of subtractive decode at the ``typical'' sampling point, negative decoding reduces the overhead by 1 pci clock. the pceb contains programmable configuration registers that define address ranges for pci resident devices. there is a set of registers associated with memcs y decoding of main memory areas and set of registers for defining address mapping of up to four memory regions that are mapped to pci for eisa bus initiated cycles. note that on the 82375eb, there is no equivalent mechanism for mapping the pci memory regions to eisa and, therefore, all pci memory cycles that need to be forwarded to the eisa bus use subtractive decoding. for the 82374sb, when negative decoding is selected, memory cycles with addresses other than those specified by the memcs y mapping for positive decode (via the mcscon, mcsboh, mcstoh, mcstom, mar1, mar2, and mar3 registers) or the four programmable eisa-to-pci memory regions (via mem- regn [ 4:1 ] ) are immediately forwarded to the eisa bus without waiting for a devsel y time-out. 55
82375eb/sb negative decoding has the following properties. # all addresses above the top of main memory or within the memcs y hole (as defined by the memcs y map) are negatively decoded to eisa, except for the four programmable eisa-to-pci memory regions. these regions (memregn [ 4:1 ] ) can overlap with active main memory ranges, the main memory hole, or with the memory space above the top of main memory. pci accesses to memregn [ 4:1 ] are always subtractively decoded to eisa. # all addresses within memcs y defined ranges 640 kbyte to 1 mbyte can be either mapped to pci or eisa using positive decoding. some of these regions allow more detailed mapping based on programmable access attributes (read enable and write enable). this permits a region to be positively decoded for the enabled attribute and negatively decoded, if enabled, to the eisa bus for the disabled attribute. for exam- ple, if a region is enabled for reads and disabled for writes, accesses to the region are positively decoded to the pci for reads and negatively decoded, if enabled, to eisa for writes. if negative decoding is disabled (i.e., subtractive decoding enabled), the write is subtractively decoded to eisa. # when negative decoding is enabled, memregn [ 4:1 ] can still be set up for subtractive decoding. a pci device that requires subtractive decoding must reside within region [ 4:1 ] . as a result, the subtractive decoding penalty is only associated with some address ranges (i.e. some devices) and not with all non-pci ranges. this feature can be used with pci devices that dynamically change response on pci cycles based on cycle type or an internal device state (e.g. intervention cycle). if a pci device can not be located in one of the regions (region [ 4:1 ] ), then negative decoding can not be used. this could occur for systems with very specific address mapping requirements or systems where the device addresses that reside on the pci bus are highly fragmented and could not be accommodated with four regions. note that the four regions do not limit mapping to only four devices. more than one device can be mapped into the same programmable region. these devices will reside within their own sub-regions, which are not necessarily contiguous. 4.1.2 pceb configuration registers pci accesses to the pceb configuration registers are positively decoded. for a detailed address map of the pceb configuration registers, see section 3.1, configuration registers. 4.1.3 pceb i/o registers the only i/o-mapped register in the pceb is the bios timer register. section 3.2 provides details on the address mapping of this register. note that the internal decode of the bios timer register is disabled after reset and all i/o accesses that are not contained within the pci are subtractively decoded and passed to eisa bus. to enable i/o access to the pceb's bios timer register, the btmr register must be programmed. 4.1.4 positively decoded compatibility i/o registers the 8259 interrupt controller and ide register locations are positively decoded. access to the corresponding i/o address ranges must first be enabled through the pdcon register. pci accesses to these registers are broadcast to the eisa bus. these pci accesses require the ownership of the eisa bus, and will be retried if the eisa bus is owned by an eisa/isa master or the dma. 56
82375eb/sb 4.1.4.1 esc resident pic registers access to the 8259 registers are positively decoded, if enabled through pdcon register, to minimize access time to the system interrupt controller during interrupt processing (in particular during the eoi command sequence). table 3 shows the 8259 i/o address map. after pcirst y , positively decoded access to these address ranges is disabled. table 3. esc resident programmable interrupt controller (pic) registers address address address address address access (hex) bits bits bits bits type register name fedc ba98 7654 3210 0020h 0000 0000 001x xx00 r/w int 1 control 0021h 0000 0000 001x xx01 r/w int 1 mask 00a0h 0000 0000 101x xx00 r/w int 2 control 00a1h 0000 0000 101x xx01 r/w int 2 mask 4.1.4.2 eisa resident ide registers the pci address decoder positively decodes ide i/o addresses (primary and secondary ide) that exist within the eisa subsystem (typically on the x-bus or as an isa slave). this feature is implemented to minimize the decoding penalty for the systems that use ide as a mass-storage controller. table 4 shows ide's i/o address map. note that the pdcon register controls the enable/disable function for ide decoding. after pcirst y , positive decode of the ide address range is disabled. table 4. eisa resident ide registers address (hex) addess (bits) access type register name fedc ba98 7654 3210 0170h 0000 0001 0111 0000 r/w secondary data register 0171h 0000 0001 0111 0001 r/w secondary error register 0172h 0000 0001 0111 0010 r/w secondary sector count register 0173h 0000 0001 0111 0011 r/w secondary sector number register 0174h 0000 0001 0111 0100 r/w secondary cylinder low register 0175h 0000 0001 0111 0101 r/w secondary cylinder high register 0176h 0000 0001 0111 0110 r/w secondary drive/head register 0177h 0000 0001 0111 0111 r/w secondary status register 01f0h 0000 0001 1111 0000 r/w primary ide data register 01f1h 0000 0001 1111 0001 r/w primary error register 01f2h 0000 0001 1111 0010 r/w primary sector count register 01f3h 0000 0001 1111 0011 r/w primary sector number register 57
82375eb/sb table 4. eisa resident ide registers (continued) address (hex) addess (bits) access type register name fedc ba98 7654 3210 01f4h 0000 0001 1111 0100 r/w primary cylinder low register 01f5h 0000 0001 1111 0101 r/w primary cylinder high register 01f6h 0000 0001 1111 0110 r/w primary drive/head register 01f7h 0000 0001 1111 0111 r/w primary status register 0376h 0000 0011 0111 0110 r/w secondary alternate status register 0377h 0000 0011 0111 0111 r secondary drive address register 03f6h 0000 0011 1111 0110 r/w primary alternate status register 03f7h 0000 0011 1111 0111 r primary drive address register 4.2 eisa cycle address decoding for eisa bus cycles, the pceb address decoder determines the destination of eisa/isa master and dma cycles. this decoder provides the following functions: # positively decodes memory and i/o addresses that have been programmed into the pceb for forwarding to the pci bus. this includes accesses to devices that reside directly on the pci (memory regions [ 4:1 ] and i/o regions [ 4:1 ] ) and segments of main memory that resides behind the host/pci bridge. # provides access attributes for memory regions [ 4:1 ] . these attributes are used to select the most optimum access mode (buffered or non-buffered). # all cycles that are not positively decoded to be forwarded to pci are contained within eisa. note: the registers that reside in the pceb (configuration registers and bios timer) are not accessible from the eisa bus. 4.2.1 positively decoded memory cycles to main memory the eisa/isa master or dma addresses that are positively decoded by the pceb are forwarded to the pci bus. if the address is not positively decoded by the pceb, the cycle is not forwarded to the pci bus. subtrac- tive and negative (82374sb only) decoding are not used on the eisa bus. the pceb permits several eisa memory address ranges (items a-i) to be positively decoded. eisa bus cycles to these regions are forwarded to the pci bus. regions described by a-f and h are fixed and can be enabled or disabled independently. these regions are controlled by the eadc1 and eadc2 registers. the region described by g defines a space starting at 1 mbyte with a programmable upper boundary of 4 gbyt e - 2 mbyte. within this region a hole can be opened. its size and location are programmable to allow a hole to be opened in memory space (for a frame buffer on the eisa bus, for example). the size of this region and the hole are controlled by the mcstom, mcsboh and mcstoh registers. if a hole in main memory is defined, then accesses to that address range are contained within eisa, unless defined by the eisa-to-pci memory regions as a pci destined access. (see next section.) 58
82375eb/sb a. 0 512 kbyte b. 512 640 kbyte c. 640 768 kbyte (vga memory) d. 768 896 kbyte in eight 16 kbyte sections (expansion rom) e. 896 960 kbyte in four 16 kbyte sections (lower bios area) f. 960 kbyte to 1 mbyte (upper bios area) g. 1 mbyte to the top of memory (up to 4 gbyte 2 mbyte) within which a hole can be opened. accesses to the hole are not forwarded to pci. the top of the region can be programmed on 2 mbyte boundaries up to 4 gbyte 2 mbyte. the hole can be between 64 kbyte and 4 gbyte 2 mbyte in 64 kbyte increments and located on any 64 kbyte boundary. h. 16 mbyte 64 kbyte to 16 mbyte (ff0000 ffffffh). eisa memory cycles in this range are always for- warded to the pci bus, if this range exists in main memory as defined by the memcs y registers. in this case, the enable/disable control bit in eadc2 register is a don't care. if this range is not defined in main memory (i.e., above the top of memory or defined as a hole in the main memory), eisa cycles to this address range are forwarded to the pci bus, based on the enable/disable bit in the eadc2 register. (this capability is used to support access of bios at 16 mbytes.) i. 4 gbyte 2 mbyte to 4 gbyte. the address map must be programmed in a such way that this address range is always contained within eisa. this is to avoid conflict with local bios memory response in this address range. if this region must be mapped to pci, then programming of the bios decoder registers contained within the esc must ensure that there is no conflict. to map this region to pci, one of the four programmable eisa-to-pci memory regions must be used. mapping of this region to the pci might be required in the case when bios resides on the pci and the pci/eisa system must have consistent address maps for both pci and eisa. for detailed information on the pceb registers used to control these address regions, refer to section 3.1, pceb configuration registers. 59
82375eb/sb 290477 48 notes: 1. the four programmable eisa-to-pci regions (regions [ 4:1 ] ) are not shown. these regions can be located anywhere within the 4 gbyte memory space. accesses to these regions are forwarded to the pci bus. 2. eisa cycles that access shaded regions are contained to the eisa bus, unless the access hits one of the four programmable eisa-to-pci regions described in note 1. 3. memory accesses to non-shaded areas are forwarded to the pci bus, if the regions is enabled. if the region is disabled, the access is contained to the eisa bus, unless the access hits one of the four programmable eisa-to-pci regions described in note 1. figure 6. eisa address decoder map eisa memory cycles positively decoded for forwarding to pci are allowed to be handled by the pceb's line buffer management logic, if the line buffering is enabled through the pcicon register. 60
82375eb/sb for eisa-to-pci transactions there are 2 modes of operation of the pceb's line buffers: # buffered: read-prefetch, write posting with data assembly. # non-buffered: bypass path used. accesses within the main memory address range are normally performed in buffered mode. if there are programmable memory regions defined within the main memory hole or above the top of the main memory memregn [ 4:1 ] , then the mode of access depends on configuration bits of the epmra register. access attribute bits associated with these regions override the default buffered mode for a particular address range in the case of programmable regions overlapping with active main memory regions. access to the 64 kbyte area at the top of 16 mbytes (ff0000 ffffffh) on the pci, if this region is within main memory or within the main memory hole and enabled via the eadc2 register, are always forwarded in a non-buffered mode, unless overlapped with a programmable region that defines buffered access mode. 4.2.2 programmable eisa-to-pci memory address regions the pceb supports four programmable memory regions for eisa-to-pci transfers. the pceb positively de- codes eisa memory accesses to these regions and forwards the cycle to the pci bus. this feature permits eisa master accesses to pci devices that reside within these address ranges. regions can be enabled or disabled. after reset, all regions are disabled. each region has an associated base and limit address fields memregn [ 4:1 ] that determine the size and location of each region. these registers are programmed with the starting address of the region (base) and ending address of the region (limit). the address range for a particular region is defined by the following equation: base e address s address s limit e address these regions can be defined anywhere in the 4 gbyte address space at 64 kbyte boundaries and with 64 kbyte granularity. in practical applications, the regions will be mapped within the main memory hole or above the top of the memory defined by the memcs y map. access to the memory locations within a region can be performed in one of two modes: # non-buffered mode : pceb's eisa-to-pci line buffers can be disabled for all eisa-to-pci memory read/ write accesses through the pcicon register or for selected accesses through epmra register. # buffered mode : line buffers enabled. read-prefetch and write-assembly/posting allowed (without strong ordering). since buffered mode provides maximum performance (and concurrency in non-gat mode), it should be selected, unless the particular region is used for memory-mapped i/o devices. i/o devices can not be ac- cessed in read-prefetch or write-assembly/posted fashion because of potential side-effects (see section 6.0, data buffering). 4.2.3 programmable eisa-to-pci i/o address regions the pceb provides four programmable i/o address regions. these regions are defined by base and limit addresses fields contained in the associated ioregn [ 4:1 ] registers. these regions can be defined anywhere within the 64 kbyte i/o space on dword boundaries (and with dword granularity). see section 4.1, pceb configuration registers. 61
82375eb/sb 4.2.4 external eisa-to-pci i/o address decoder since the i/o address map may be highly fragmented, it is impractical to provide enough programmable regions to completely define mapping of registers for i/o devices on the pci. the pceb's input signal pin piodec y can be used, if a more complex i/o decode scheme is needed. piodec y complements the functions of the four pceb programmable i/o regions with external decode logic. if piodec y is asserted during an eisa i/o cycle, the cycle is forwarded to the pci bus. if the piodec y signal is not used, a pull-up resistor is required to provide an inactive signal level. 4.3 palette dac snoop mechanism some advanced graphics eisa/isa expansion boards use the pre-dac vga pixel data from the vga special feature connector and merge it with advanced graphics data (multi-media for example). the merged data is then run through a replicated palette dac on the advanced graphics expansion board to create the video monitor signal. the replicated palette dac is kept coherent by snooping vga palette dac writes. snooping becomes an issue in a system where the vga controller is placed on the pci bus and the snooping graphics board is on the eisa expansion bus. normally, the pci vga controller will respond to the palette dac writes with devsel y , so the pceb will not propagate the cycle to the eisa bus using subtractive decoding. the burden for solving this problem is placed on the vga subsystem residing on the pci. the vga subsystem on pci must have an enable/disable bit associated with palette dac accesses. when this bit is enabled the pci vga device responds in handshake fashion (generates devsel y , trdy y , etc.) to i/o reads and writes to the palette dac space. when this bit is disabled, the pci vga device responds in handshake fashion only to i/o reads to palette dac space. i/o writes to the palette dac space will be snooped (data latched) by the pci vga device, but the pci vga subsystem will not generate a devsel y . in this case, the i/o write will be forwarded to the eisa bus by the pceb as a result of subtractive decode. the pci vga device must be able to snoop these cycles in the minimum eisa cycle time. the state of palette-dac snooping control bit does not affect i/o reads from the palette dac space. regard- less of whether this bit is enabled or disabled, the pci vga device will service the i/o reads from the palette dac space. 5.0 pci interface the pceb provides the pci interface for the pci-eisa bridge. the pceb can be an initiator (master) or target (slave) on the pci bus and supports the basic pci bus commands as described in section 5.1.1, pci com- mand set. for eisa-to-pci transfers, the pceb is a master on the pci bus on behalf of the requesting eisa device. an eisa device can read and write either pci memory or i/o space. the pceb forwards unclaimed pci bus cycles to eisa. for pci bus cycles that are not claimed, the pceb becomes a slave on the pci bus (claiming the cycle via subtractive or negative decoding) and forwards the cycle to the eisa bus. note that negative decoding is only used on the 82374sb. this section describes the pci bus transactions supported by the pceb. the section also covers the pci bus latency mechanisms in the pceb that limit a master's time on the bus and the pceb support of parity. in addition, the pceb contains pci bus arbitration circuitry that supports up to six masters. pci bus arbitration is described in section 5.4. 62
82375eb/sb note: 1. all signals are sampled on the rising edge of the pci clock. each signal has a setup and hold window with respect to the rising clock edge, in which transitions are not allowed. outside of this range, signal values or transitions have no significance. 2. the terms initiator and master are synonymous. likewise, the terms target and slave are synony- mous. 3. readers should be familiar with the pci bus specification. 5.1 pci bus transactions this section presents the pci bus transactions supported by the pceb. 5.1.1 pci command set pci bus commands indicate to the target the type of transaction requested by the master. these commands are encoded on the c/be [ 3:0 ] y lines during the address phase of a transfer. table 5 summarizes the pceb's support of the pci bus commands. table 5. pceb-supported pci bus commands c/be [ 3:0 ] y command type supported as target supported as initiator 0000 interrupt acknowledge yes no 0001 special cycle no no 0010 i/o read yes yes 0011 i/o write yes yes 0100 reserved n/a (3) n/a (3) 0101 reserved n/a (3) n/a (3) 0110 memory read yes yes 0111 memory write yes yes 1000 reserved n/a (3) n/a (3) 1001 reserved n/a (3) n/a (3) 1010 configuration read yes no 1011 configuration write yes no 1100 memory read multiple no (2) no 1101 reserved n/a (3) n/a (3) 1110 memory read line no (2) no 1111 memory write and invalidate no (1) no notes: 1. as a target, the pceb treats this command as a memory write command. 2. as a target, the pceb treats this command a s a a memory read command. 3. the pceb considers a reserved command invalid and, as a target, completely ignores the transaction. all internal ad- dress decoding is ignored and the pceb never asserts devsel y . as a pci master, the pceb never generates a bus cycle with a reserved command type. 63
82375eb/sb 5.1.2 pci cycle descriptions each pci command is listed below with the following format of information: command type pceb target support -decode method -data path -pceb response -result of no response on eisa pceb initiator support -data path -conditions for generating command -result of no response on pci 5.1.2.1 interrupt acknowledge target support: decode: positive data path: flow through response: the interrupt acknowledge cycle is subject to retry. if the pceb is locked, or if the interrupt acknowledge cycle triggers buffer management activity, or if the eisa bus is occupied by an eisa/isa master or the dma, the interrupt acknowledge cycle is retried. the interrupt acknowledge command is a single byte read that is implicitly addressed to the interrupt controller in the esc component. the address bits are logical ``don't cares'' during the address phase and the byte enables indicate to the pceb that an 8-bit interrupt vector is to be returned on byte 0. after performing the necessary buffer management operations and obtaining ownership of the eisa bus, the pceb generates a single pulse on the pereq y /inta y inter-chip signal and performs an i/o read cycle (on the eisa bus) to the esc internal registers residing at i/o address 04h. the esc decode logic uses the pereq y /inta y signal to distinguish between standard accesses to i/o address 04h (dma controller) and special accesses that result in a vector being read by the pceb. the pceb holds the pci bus, in wait states, until the interrupt vector is returned. pereq y /inta y remains asserted until the end of the read cycle. result of no response on eisa: the pceb runs a standard length eisa i/o read cycle and terminates normally. the value of the data returned as an interrupt vector is meaningless. initiator support: none. note: the pceb only responds to pci interrupt acknowledge cycles if this operation is enabled via bit 5 of the pcicon register). 64
82375eb/sb 5.1.2.2 special cycle target support: none. initiator support: none. 5.1.2.3 i/o read target support: decode: positive (pceb and some esc registers) & subtractive data path: flow through response: the pceb claims i/o read cycles via positive or subtractive decoding and generates devsel y . the internal pceb registers (bios timer) and the ide and the 8259 registers are positively decoded. any unclaimed cycle below 64 kbyte is subtractively decoded and forwarded to the eisa bus. the i/o read cycle is subject to retry. if the pceb is locked, if the cycle triggers buffer management activity, or if the eisa bus is occupied by an eisa/isa master or the dma, the i/o read cycle is retried. if the cycle gets retried due to an occupied eisa bus, the eisa bus is requested. once an i/o read cycle is accepted (not retried) by the pceb, the pci bus is held in wait states using trdy y until the cycle is completed internally or on the eisa bus. burst i/o reads to the eisa bus or to the pceb are not supported. therefore, any burst i/o read cycles decoded by the pceb are target terminated after the first data transaction using the disconnect semantics of the stop y signal (disconnect a). result of no response on eisa: the pceb runs a standard length eisa i/o cycle and terminates normally. initiator support: the pceb generates pci bus i/o read cycles on behalf of an eisa master. eisa cycles are forwarded to the pci bus if the i/o address is within one of four programmable i/o address regions as defined in section 4.0 address decoding. result of no response on pci: master abort due to devsel y time-out. pceb returns data value ffffffffh. 5.1.2.4 i/o write target support: decode: positive (pceb/esc registers) & subtractive data path: flow through response: i/o write cycles can be claimed by the pceb via positive or subtractive decoding. in either case, the pceb generates devsel y . the internal pceb registers (bios timer), ide registers and 8259 registers are positive- ly decoded, if enabled. any unclaimed cycle below 64 kbyte is subtractively decoded and forwarded to the eisa bus. the i/o write cycle is subject to retry. if the pceb is locked, if the cycle triggers buffer management activity, or if the eisa bus is occupied by an eisa/isa master or the dma, the i/o write cycle is retried. if the cycle is retried due to an occupied eisa bus, the eisa bus is requested. once an i/o write cycle is accepted (not retried) by the pceb, the pci bus is held in wait states using trdy y until the cycle is completed within the pceb or on the eisa bus. burst i/o writes to the eisa bus or to the pceb are not supported. therefore, any burst i/o write cycles decoded by the pceb are target terminated after the first data transaction using the disconnect semantics of the stop y signal (figure 5-12, disconnect a). 65
82375eb/sb result of no response on eisa: the pceb runs a standard length eisa i/o cycle and terminates normally. initiator support: the pceb generates pci i/o write cycles on behalf of an eisa master. eisa cycles are forwarded to the pci bus if the i/o address is within one of the four programmable i/o address regions defined in section 4.0, address decoding. result of no response on pci: master abort due to devsel y time-out. 5.1.2.5 memory read target support: decode: negative (82374sb only) and subtractive data path: flow through pceb response: memory read cycles may be claimed by the pceb via negative or subtractive decoding. the pceb claims the cycle by asserting devsel y . unclaimed pci cycles (devsel y time-out) are claimed by the pceb via subtractively decoding and forwarded to the eisa bus. the memory read cycle is subject to retry. if the pceb is locked, if the cycle triggers buffer management activity, or if the eisa bus is occupied by an eisa/isa master or the dma, the memory read cycle is retried. if the cycle is retried due to an occupied eisa bus, the eisa bus is requested. once a memory read cycle is accepted (not retried) by the pceb, the pci bus is held in wait states, using trdy y , until the cycle is completed to the eisa bus. incremental burst memory reads destined for the eisa bus take longer than the allowed 8 pciclks. there- fore, any burst memory read cycle decoded by the pceb causes the pceb to target terminate the cycle after the first data transaction using the disconnect semantics of the stop y signal (figure 5-8, disconnect a). result of no response on eisa: the pceb runs a standard length eisa memory read cycle and terminates normally. initiator support: data path: line buffer when enabled. flow through when line buffer is disabled or it is a bypass cycle. cycle generation conditions: as an initiator, the pceb generates a pci memory read cycle when it decodes an eisa memory read cycle destined to the pci that can not be serviced by the line buffer. this condition occurs for eisa/isa master and dma cycles that can not be serviced by the line buffer because the line buffer is empty, there is a line buffer miss, or line buffering is disabled. as an initiator, the pceb only generates linear incrementing burst ordering that is signaled by ad [ 1:0 ] e 00 during the address phase. other types of burst transfers (i.e. cache line toggle mode) are never initiated by the pceb. the pceb generates a burst memory read when it is fetching 16 bytes into one of the four line buffers. result of no response on pci: master abort due to devsel y time-out. pceb returns data value ffffffffh. 66
82375eb/sb 5.1.2.6 memory write target support: decode: negative (82374sb only) and subtractive data path: flow through pceb response: memory write cycles may be claimed by the pceb via negative or subtractive decoding. the pceb asserts devsel y to claim the cycle. unclaimed pci cycles (devsel y time-out) within the 4 gbyte memory space are claimed by the pceb via subtractively decoding and forwarded to the eisa bus. the memory write cycle is subject to retry. if the pceb is locked, the cycle triggers buffer management activity. if the eisa bus is occupied by an eisa/isa master or the dma, the memory write cycle is retried. if the cycle is retried due to a disabled buffer because the eisa bus is occupied, the eisa bus is requested. once a memory write cycle is accepted (not retried) by the pceb, the pceb holds the pci bus in wait states (using trdy y ) until the cycle is completed on the eisa bus. result of no response on eisa: the pceb initiates a standard length eisa memory write cycle and terminates normally. initiator support: data path: line buffer when enabled, flow through when line buffer is disabled. cycle generation conditions: as an initiator, the pceb generates a pci memory write cycle when it decodes an eisa memory write cycle destined to pci, that can not be serviced by the line buffer because it is disabled. this occurs for eisa/isa masters and dma cycles when the line buffer is disabled. the pceb also generates a memory write cycle when the line buffer needs to be flushed. the line buffer is flushed under several conditions, including when the 16 byte line is full, when there is a ``miss'' to the current 16 byte line, or when it is required by the buffer management logic. (see section 6.0, data buffering). as an initiator, the pceb generates only linear incrementing burst ordering that is signaled by ad [ 1:0 ] e ``00'' during address phase. other types of burst transfers (i.e. cache line toggle mode) are never initiated by the pceb. result of no response on pci: master abort due to devsel y time-out. 5.1.2.7 configuration read, configuration write target support: decode: via idsel pin data path: flow through response: the pceb responds to configuration cycles by generating devsel y when its idsel signal is asserted, regardless of the address. during configuration cycles, ad [ 7:2 ] are used to address the pceb's configuration space. ad [ 31:8 ] are not used and are logical ``don't cares''. ad [ 1:0 ] must be zero. result of no response on eisa: n/a initiator support: configuration cycles are never generated by the pceb. 67
82375eb/sb 5.1.2.8 memory read multiple target support: the pceb aliases this command to a normal memory read cycle. see the memory read command descrip- tion. initiator support: memory read multiple cycles are never generated by the pceb. 5.1.2.9 memory read line target support: the pceb aliases this command to a normal memory read. see the memory read command description. initiator support: memory read line cycles are never generated by the pceb. 5.1.2.10 memory write and invalidate target support: response: the pceb treats this command like a memory write. see the memory write command description. initiator support: cycle generation conditions: the pceb does not generate this command cycle. 5.1.3 pci transfer basics the basic bus transfer mechanism on the pci bus is a burst. a burst is comprised of an address phase and one or more data phases. the pci protocol specifies the following types of burst ordering (signaled via a [ 1:0 ] during the address phase): a [ 1:0 ] burst order 0 0 linear incrementing 0 1 cache line toggle mode 1 x reserved the pceb only supports linear incrementing burst ordering as an initiator. data transfers for ordering other than linear incrementing are disconnected by the pceb (burst split into multiple single data transfers). the fundamentals of all pci data transfers are controlled with the following three signals: # frame y is driven by the pci master to indicate the beginning and end of a transaction. # irdy y is driven by the pci master, allowing it to force wait states. # trdy y is driven by the pci target, allowing it to force wait states. the pci bus is idle when both frame y and irdy y are negated. the first clock edge that frame y is sampled asserted is the address phase, and the address and bus command code are transferred on that clock edge. the next clock edge begins the first of one or more data phases. during the data phases, data is transferred between master and slave on each clock edge that both irdy y and trdy y are sampled assert- ed. wait states may be inserted by either the master (by negating irdy y ) or the target (by negating trdy y ). when a pci master has one more data transfer to complete the cycle (which could be immediately after the address phase), it negates frame y . irdy y must be asserted at this time, indicating that the master is ready for the final data transfer. after the target indicates the final data transfer (trdy y asserted), the master negates irdy y , causing the target's pci interface to return to the idle state (frame y and irdy y negated), on the next clock edge. 68
82375eb/sb for i/o cycles, pci addressing is on byte boundaries and all 32 ad lines are decoded to provide the byte address. for memory cycles, ad [ 1:0 ] are used to define the type of burst ordering. for configuration cycles, devsel y is strictly a function of idsel y . configuration registers are selected as dwords using ad [ 7:2 ] . the ad [ 1:0 ] must be 00 for the target to directly respond to the configuration cycle. the byte enables determine which byte lanes contain valid data. each pci agent is responsible for its own positive address decode. only one agent (the pceb) on the pci bus may use subtractive decoding. the little endian addressing model is used. the byte enables are used to determine which bytes carry meaningful data. these signals are permitted to change between data phases. the byte enables must be driven valid from the edge of the clock that starts each data phase and must stay valid for the entire data phase. figure 7, the data phases begin on clocks 3 and 4. (changing byte enables during a read burst transaction is generally not useful, but is supported on the bus.) the master is permitted to change the byte enables on each new data phase, although the read diagram does not show this. the timing for changing byte enables is the same for read and write transactions. if byte enables are important for the target on a read transaction, the target must wait for the byte enables to be driven on each data phase before completing the transfer. 5.1.3.1 turn-around-cycle definition a turn-around-cycle is required on all signals that may be driven by more than one agent. the turn-around-cy- cle is required to avoid contention when one agent stops driving a signal and another agent begins, and must last at least one clock. the symbol that represents a turn-around-cycle in the timing relationship figures is a circular set of two lines, each with an arrow that points to the other's tail. this turn-around-cycle occurs at different times for different signals. for example, the turn-around-cycle for irdy y , trdy y and devsel y occurs during the address phase and for frame y , c/be y and ad, it occurs during the idle cycle. 5.1.3.2 idle cycle definition the cycle between clocks 7 and 8 in figure 8 is called an idle cycle. idle cycles appear on the pci bus between the end of one transaction and the beginning of the next. an idle cycle occurs when both frame y and irdy y are negated. 69
82375eb/sb 290477 49 figure 7. pceb burst read from pci memory 290477 50 figure 8. pci master read from the pceb (burst with target termination) 70
82375eb/sb 5.1.4 basic read as a pci master, the pceb performs memory and i/o read transfers. figure 7 shows a pceb zero wait state burst read from pci memory (pceb is a master). if buffering of memory accesses is enabled, read transfers use prefetching. when reading data from pci memory, the pceb requests a minimum of 16 bytes (one data line of the line buffer), via a four data phase burst read cycle, to fill one of its internal line buffers. the pceb does not buffer pci i/o reads and only required data is transferred during these cycles. read cycles to pci are generated on behalf of eisa/isa masters and dma devices. the pceb asserts frame y on clock 1 and places the address on ad [ 31:2 ] . cb/e [ 3:0 ] y contain a valid bus command. ad [ 1:0 ] contain the byte address for i/o cycles, burst order indication for memory cycles, and are 00 for configuration cycles. the clock following the address phase is the beginning of the data phase. during the data phase, c/be [ 3:0 ] y indicate which byte lanes are involved in the transaction. if the byte lanes involved in the transaction are different for data 1 and data 2, the pceb drives new c/be [ 3:0 ] values on clock 4. c/be [ 3:0 ] y remain active until the end of the burst transfer. the first data phase of a read transaction requires a turn-around-cycle, which is enforced by the target preventing the assertion of trdy y until at least clock 3. the pceb stops driving the address at clock 2. the target can not drive the ad bus until clock 3. this allows enough time for the pceb to float its ad outputs. the target is required to drive the ad lines as soon as possible after clock 3, even though valid data may not be ready and the target may want to stretch the initial data phase by delaying trdy y . this insures that the ad lines are not left floating for long intervals. the target must continue to drive these lines until the end of the burst transaction. a single data phase is completed when the initiator of the cycle samples trdy y asserted on the same clock that irdy y is asserted. to add wait states, the target must negate trdy y for one or more clock cycles. as a master, the pceb does not add wait states. in figure 7, data is transferred on clocks 4 and 5. the pceb knows, at clock 6, that the next data phase is the last and negates frame y . as noted before, the pceb can burst a maximum of four data cycles when reading from pci memory. as a pci target , the pceb responds to both i/o and memory read transfers. figure 8 shows the pceb, as a target, responding to a pci master read cycle. for multiple read transactions, the pceb always target termi- nates after the first data read transaction by asserting stop y and trdy y . these signals are asserted at the end of the first data phase. for single read transactions, the pceb completes the cycle in a normal fashion (by asserting trdy y without asserting stop y ). figure 8 shows the fastest pceb response to an access of an internal configuration register. during eisa bus read accesses, the pceb always adds wait states by negating trdy y until the transfer on the eisa bus is completed. when the pceb, as a target, samples frame y active during a read cycle and positively decodes the cycle, it asserts devsel y on the following clock (clock 3 in figure 8). note that, if the pceb subtractively or negative- ly (82374sb only) decodes the cycle, devsel y is not asserted for two to three pciclk's after frame y is sampled active. (see section 5.1.9, device selection). when the pceb asserts devsel y , it also drives ad [ 31:0 ] , even though valid data is not available. trdy y is also driven from the same clock edge but it is not asserted until the pceb is ready to drive valid data. trdy y is asserted on the same clock edge that the pceb drives valid data on ad [ 31:0 ] . if the pceb presents valid read data during the first data phase and frame y remains active (multiple transaction indicated), the pceb asserts trdy y and stop y to indicate target termination of the transfer. 71
82375eb/sb 5.1.5 basic write figure 9 shows the pceb, as a master, writing to pci memory in zero wait states. figure 10 shows the fastest response of the pceb, as a target, to a memory or i/o write transaction generated by a pci master. as a pci master , the pceb performs memory write and i/o transfers. if buffering of memory accesses is enabled, write transfers are posted. when writing data to pci memory, the pceb writes a maximum of 16 bytes (one line of the line buffer) using a burst write cycle. i/o writes are always non-buffered transactions. the pceb generates pci write cycles on behalf of eisa masters and dma devices, and when the pceb flushes its internal line buffer. as a pci target , the pceb responds to both i/o and memory write transfers. if the eisa bus is occupied, the pci write is retried by the pceb. when the pceb owns the eisa bus, the transaction proceeds. for burst i/o writes, the pceb always target terminates after the first data transaction by asserting stop y and trdy y at the end of the first data phase. during a burst memory write, the pceb always target terminates after the first data phase. figure 10 shows the fastest pceb response to a write cycle targeted to an internal pci configuration register. during i/o or memory write accesses to the eisa bus, the pceb always adds wait states. the pceb adds wait states by holding trdy y high until the transfer on the eisa bus is completed. 290477 51 figure 9. pceb write to pci memory 72
82375eb/sb 290477 52 figure 10. fastest pci write to pceb 5.1.6 configuration cycles one of the requirements of the pci specification is that upon power up, pci agents do not respond to any address. the only access allowed is through the idsel configuration mechanism. the pceb is an exception to this since it controls access to the bios boot code. all pceb/esc subsystem addresses that are enabled after reset are accessible immediately after power up. the configuration read or write command is used to configure the pceb. during the address phase of the configuration read or write cycle, the pceb samples its idsel (id select) signal (not the address lines) to generate devsel y . in this way, idsel acts as a chip select. during the address phase, ad [ 7:2 ] are used to select a particular configuration register and be [ 3:0 ] to select a particular byte(s). the pceb only responds to configuration cycles if ad [ 1:0 ] e 00. reference figure 11 for configuration reads and writes. note that idsel is normally a ``don't care'', except during the address phase of a transaction. upon decode of a configuration cycle and sampling idsel active, the pceb responds by asserting devsel y and trdy y . an unclaimed configuration cycle is never forwarded to the eisa bus. configuration cycles are not normally run in burst mode. if this happens, the pceb splits the transfer into single cycles using the slave termination mechanism. 73
82375eb/sb 290477 a1 figure 11. configuration cycle 5.1.7 interrupt acknowledge cycle the pceb responds to an interrupt acknowledge cycle as decoded from the command during a valid address cycle (frame y asserted). the ad bus itself is a ``don't care'' to the pceb during the address phase and, therefore, status of the internal pci address decoder is not used for forwarding the cycle to the eisa bus where the system interrupt controller resides. the pceb converts the pci interrupt acknowledge cycle into an eisa i/o read access to the address 04h, with special semantics indicated to the esc via the inter-chip signaling. before the pci interrupt acknowledge cycle can be converted into an eisa i/o read cycle, the eisa bus must be owned. if the eisa bus is not owned by the pceb (eisahlda asserted), the pereq y /inta y signal is asserted with pereq y semantics (pci-to-eisa request). after the eisa bus is acquired by the pceb, the interrupt acknowledge sequence can proceed. the pceb starts an i/o read cycle to address 04h and asserts pereq y /inta y with inta y semantics. the pereq y /inta y remains asserted for the duration of the eisa i/o read cycle. therefore, only a single pulse is generated on the pereq y /inta y signal. conversion of the single pci interrupt ac- knowledge cycle into two interrupt acknowledge pulses (that is required for 8259 compatibility) occurs inside the esc where the 8259-based interrupt controller resides. the esc's eisa decoder uses the pereq y / inta y signal (with inta y semantics) to distinguish between normal i/o reads to the register located at address 04h (dma1 ch2 base and current address) and the interrupt acknowledge sequence. the esc holds the eisa bus in wait states until the interrupt vector is returned to the pceb (via sd [ 7:0 ] ). the pceb passes the vector to the pci via ad [ 7:0 ] and then terminates the cycles both on eisa and pci. note that for compatibility reasons, only the esc (containing the dma controller) can respond to the eisa i/o read from 04h. figure 12 shows the pci portion of the interrupt acknowledge sequence. the eisa portion of the sequence matches normal eisa i/o read timing, except that the pereq y /inta y inter-chip signal is asserted during the bus cycle with inta y semantics and, during the pceb/esc eisa bus ownership exchange handshake, with pereq y semantics. note that the pceb responses to a pci interrupt acknowledge cycle can be dis- abled by setting bit 5 in the pci control register (pcicon) to 0. 74
82375eb/sb 290477 54 figure 12. pci interrupt acknowledge cycle 5.1.8 exclusive access refer to figure 13, figure 14, and figure 15 for exclusive access timing relationships. target support: pci provides an exclusive access mechanism that allows non-exclusive accesses to proceed in the face of exclusive accesses. this is referred to as a resource lock. (note that the exclusive access mechanism that locks the entire bus is bus lock.) the pceb, as a resource, can be locked by any pci initiator. in the context of locked cycles, the pceb and entire eisa subsystem are considered a single resource. (eisa subsystem is indirectly locked during an exclusive access to the pceb.) a locked access to any address contained within the eisa subsystem locks the entire subsystem from the pci side. the plock y signal is propagated to the eisa lock y signal. note that write posting (pci-to-eisa) is disabled for pci locked cycles propagated to the eisa subsystem. the eisa bus is not released to esc until the locked sequence is complete. a subsequent pci initiator access to the eisa subsystem, while it is locked, results in a retry. the pceb becomes locked when it is the target of the access and plock y is sampled negated during the address phase. the pceb remains locked until frame y and plock y are both sampled negated. when in a locked state, the pceb only accepts requests when plock y is sampled negated during the address phase. if plock y is asserted during the address phase, the pceb responds by asserting stop y with trdy y negated (retry). as an unlocked target, the pceb ignores plock y when deciding if it should respond to a pci address decoder hit. also, if plock y is sampled asserted during an address phase, the pceb does not go into a locked state. as a locked target, the pceb responds to an initiator when it samples plock y negated during the address phase of the cycle in which the pceb is the target of the access. the locking master may negate plock y at the end of the last data phase. when frame y and plock y are both sampled negated, the pceb goes to the unlocked state. note that the pceb does not release the eisa bus when it is in the locked state. 75
82375eb/sb initiator support: when an eisa locked access to the pci is encountered (eisa lock y asserted), the cycle is propagated to the pci bus as a pci locked cycle. line buffers in the pceb are bypassed. the plock y signal must be negated (released) before an eisa agent can be granted the eisa bus. thus, when the pceb acquires the pci bus on behalf of the eisa agent, a pci locked cycle can be performed, if needed. 290477 55 figure 13. beginning a locked cycle 290477 56 figure 14. continuing locked cycle 76
82375eb/sb 290477 57 figure 15. access to locked target with plock y asserted during address phase 5.1.9 device selection the pceb asserts devsel y to indicate that it is the target of the pci transaction. devsel y is asserted when the pceb, as a target, positively, subtractively, or negatively (82374sb only) decodes the pci transac- tion. in all cases except one, once the pceb asserts devsel y , the signal remains asserted until frame y is negated (irdy y is asserted) and either stop y or trdy y is asserted. the exception is a target abort, described in section 5.1.10, transaction termination. for most systems, pci target devices are able to complete a decode and assert devsel y within 2 or 3 clocks of frame y (medium and slow in the figure 16). accordingly, since the pceb subtractively or nega- tively (82374sb only) decodes all unclaimed pci cycles (except configuration cycles), it provides a configura- tion option to reduce by 1 clock the edge at which it samples devsel y , allowing faster access to the expansion bus. use of this option is limited by the slowest positive decode agent on the bus. this is described in more detail in section 4.0, address decoding. 77
82375eb/sb 290477 58 figure 16. device selection (devsel y ) 5.1.10 transaction termination termination of a pci cycle can be initiated by either a master or a target. the pceb supports both master and target initiated termination. all transactions are concluded when frame y and irdy y are both sampled negated, indicating that the pci bus is idle. 5.1.10.1 master initiated termination the pceb supports three types of master initiated termination: # completion: refers to the termination when the pceb finishes the transaction normally. this is the most common type of termination. # time-out: refers to termination when the pceb's gnt y line is negated and its internal master latency timer has expired. the intended transaction is not necessarily concluded. the timer may have expired because of a target-induced access latency, or because the intended operation was very long. # abort: refers to termination when there is no target response (no devsel y asserted) to a transaction within the programmed devsel y response time. completions and time-outs are common while the abort is an abnormal termination. a normal termination of this type can be seen in section 5.1.4 and 5.1.5 in the descriptions of the basic pci read and write transaction. the pceb sends out a master abort (figure 17) when the target does not respond to the pceb-initiated transaction by asserting devsel y . the pceb checks devsel y based on the programmed devsel y sample point. if devsel y is not asserted by the programmed sample point, the pceb aborts the transaction by negating frame y , and then, one clock later, negating irdy y . the master abort condition is abnormal and it indicates an error condition. the pceb does not retry the cycle. if the transaction is an eisa-to-pci memory or i/o write, the pceb terminates the eisa cycle with exrdy. if the transaction is an eisa-to-pci memory or i/o read, the pceb returns ffffffffh on the eisa bus. this is identical to the way an unclaimed cycle is handled on the ``normally ready'' eisa bus. if the line buffer is the requester of the pci transaction, the master abort mechanism ends the pci cycle, but no data is transferred into or out of the line buffer. the line buffer does not retry the cycle. the received master abort status bit in the pci status register is set to 1 indicating that the pceb issued a master abort. 78
82375eb/sb 290477 59 figure 17. master initiated termination (master abort) 5.1.10.2 target initiated termination the pceb supports two forms of target-initiated termination: # disconnect: a disconnect termination occurs when the target is unable to respond within the latency guidelines of the pci specifications. note that this is not usually done on the first data phase. # retry: retry refers to a termination requested because the pceb is currently in a state that makes it unable to process the transaction. figure 18 and figure 19 show four types of target-initiated terminations. the pceb initiates a disconnect for pci cycles destined to eisa after the first data phase due to incremental latency requirements. the difference between disconnect and retry is that the pceb does not assert trdy y for the retry case. this instructs the initiator to retry the transfer at a later time. no data is transferred in a retry termination since trdy y and irdy y are never both asserted. the pceb retries a pci initiator when: # the pceb buffers require management activity. # the pceb is locked and another pci device attempts to select the pceb without negating plock y during the address phase. # the eisa bus is occupied by an eisa/isa master or dma. target abort is another form of target-initiated termination. target abort resembles a retry, though the target must also negate devsel y , along with assertion of stop y . as a target, the pceb never generates a target abort. as a master, if the pceb receives a target abort, it relinquishes the pci bus and sets the received target abort status bit in the pci status register to a 1. 79
82375eb/sb 290477 60 figure 18. target initiated termination 290477 61 figure 19. target initiated termination 80
82375eb/sb 5.1.10.3 pceb target termination conditions as a target, the pceb terminates a transaction due to the following conditions: disconnect # when a target, the pceb always responds with a disconnect to a multiple data phase transaction (see the incremental latency timer section), retry # when the pending pci cycle initiates buffer management activity. # when the pceb is locked, as a resource, and a pci master tries to access the pceb without negating the plock y signal in the address phase. # when the eisa bus is occupied by an eisa/isa master or dma. target abort # the pceb never generates a target abort. 5.1.10.4 pceb master termination conditions as an initiator, the pceb terminates a transaction due to the following conditions: # completion termination is always used by the pceb signaling to the target that the pceb is ready to complete the final data phase of the transaction. # master abort termination is issued if the pceb does not receive a devsel y from a target within five pciclk's after frame y assertion. the pceb sets the received master abort status bit in the pci status register to a 1. # master initiated termination (disconnect) due to master latency timer expiration when the pceb's pci bus grant is removed (internal pcebgnt y negated). 5.1.10.5 pceb responses/results of termination pceb's response, as a target, to a master termination: # completion termination is the normal way of terminating a transaction. # if a pci initiator times out due to lt time-out and ends the current transaction, the pceb cannot detect a difference between normal completion termination and time-out forced termination. pceb's response as a master to target termination: # if the pceb receives a target abort, it means that the target device is not capable of handling the transac- tion. the pceb does not try the cycle again. if an eisa/isa master or the dma is waiting for the pci cycle to terminate (exrdy negated), the target abort condition causes the pceb to assert exrdy to terminate the eisa cycle. note that write data is lost and the read data is meaningless. this is identical to the way an unclaimed cycle is handled on the ``normally ready'' eisa bus. if the line buffer is the requester of the pci transaction, the target abort mechanism ends the pci cycle, but no valid data transfers are performed into or out of the line buffer. the line buffer does not try the cycle again. the received target abort status bit in the pci status register is set to 1 indicating that the pceb experienced a target abort condition. # if the pceb is retried as an initiator on the pci bus, it will remove it's request for 2 pci clocks before asserting it again to retry the cycle. 81
82375eb/sb # if the pceb is disconnected as an initiator on the pci bus, it will respond very much as if it had been retried. the difference between retry and disconnect is that the pceb did not see any data phase for the retry. disconnect may be generated by a pci slave when the pceb is running a burst memory cycle to empty or to fill one line (16-byte) of the line buffers. in this case, the pceb may need to finish a multi-data phase transfer and recycles through arbitration as required for a retry. an example is when an eisa agent (eisa/ isa master or dma) issues a read request that the pceb translates into a 16 byte prefetch (one line) and the pceb is disconnected before the line buffer is completely filled. 5.1.11 pci data transfers with specific byte enable combinations non-contiguous combination of byte enables as a master, the pceb might generate non-contiguous combinations of data byte enables because of the nature of assembly operations in the line buffers. as a target, the pceb might need to respond to a non-contiguous combination of data byte enables. these cycles can not be passed directly to the eisa bus; the eisa bus specification does not allow non-contiguous combinations of byte enables. if this situation occurs, the pceb splits the 32-bit transactions into two 16-bit transactions by first performing the lower word transfer (indicated by be1 y and be0 y ) and then the upper word transfer (indicated by be3 y and be2 y ). be [ 3:0 ] y e 1111 as a master, the pceb might generate this combination of data byte enables during line buffer flush opera- tions (burst write) to optimize the usage of the pci bus. correct parity is driven during this transaction on the pci bus. as a target, the pceb might need to respond to this combination of data byte enables. if be [ 3:0 ] y e 1111, the pceb completes the transfer by asserting trdy y and providing parity for read cycles. the pceb does not forward the cycle to the eisa bus. 5.2 pci bus latency the pci specification provides two mechanisms that limit a master's time on the bus. they ensure predictable bus acquisitions when other masters are requesting bus access. these mechanisms are master-initiated termination supported by a master latency timer (mlt) and a target-initiated termination (specifically, discon- nect) supported by a target's incremental latency mechanism. 5.2.1 master latency timer (mlt) the pceb has a programmable master latency timer (mlt). the mlt is cleared and suspended when the pceb is not asserting frame y . the mlt is controlled via the mlt register (see section 4.1, pceb configu- ration registers). when the pceb, as a master, asserts frame y , it enables its mlt to count. if the pceb completes its transaction (negates frame y ) before the count expires, the mlt is ignored. if the count expires before the transaction completes (count e number clocks programmed into the mlt register ), the pceb initiates a transaction termination as soon as its gnt y is removed. the number of clocks programmed into the mlt register represents the guaranteed time slice (measured in pciclks) allotted to the pceb; after which it surrenders the bus as soon as its gnt y is removed. (actual termination does not occur until the target is ready.) each master on pci contains a master latency timer. the relative values programmed in each master timer determines how much of the pci bandwidth is available to that master. generally, if the eisa bus is heavily loaded with masters, the pceb mlt register would be programmed with a relatively large value to give the pceb a larger share of the pci bus bandwidth. 82
82375eb/sb 5.2.2 incremental latency mechanism as a target, the pceb supports the incremental latency mechanism for pci-to-eisa cycles. the pci specifi- cation states that for multi-data phase pci cycles, if the incremental latency from current data phase (n) to the next data phase (n a 1) is greater than eight pciclks, the target must manipulate trdy y and stop y to stop the transaction after the current data phase (n). all pci-to-eisa cycles (memory read/write and i/o read/ write) are automatically terminated (during a burst) after the first data phase because they require more than eight pciclks to complete on the eisa bus. therefore, the pceb does not need to specifically implement an 8 pciclk timer and the pceb handles a disconnect in a pre-determined fashion, based on the type of current transaction. 5.3 pci bus parity support and error reporting pci provides for parity and asynchronous system errors to be detected and reported separately. the pceb/ esc chip set implements both mechanisms. the pceb implements only parity generation and checking and it does not interface to the serr y signal. reporting of both perr y and serr y indicated errors is implement- ed in the esc. 5.3.1 parity generation and checking the pceb supports parity generation and checking on the pci bus. during the address and data phases, parity covers ad [ 31:0 ] and the c/be [ 3:0 ] y lines, regardless of whether or not all lines carry meaningful information. byte lanes that are not actually transferring data are still required to be driven with stable (albeit meaningless) data and are included in the parity calculation. parity is calculated such that the number of 1s on ad [ 31:0 ] , c/be [ 3:0 ] y , and the par signals is an even number. the role of the pceb in parity generation/checking depends on the phase of the cycle (address or data), the type of bus cycle (read or write), and whether the pceb is a master or target. the following paragraphs and figure 20 summarize the behavior of the pceb during the address and data phase of a pci bus cycle. 290477 62 figure 20. parity operation 83
82375eb/sb 5.3.1.1 address phase as a master, the pceb drives ad [ 31:0 ] and c/be [ 3:0 ] y and calculates the corresponding parity value and drives it on the par signal, 1 clock later. as a target, the pceb does not check parity during the address phase of a bus cycle. 5.3.1.2 data phase as a master during a write cycle, the pceb drives ad [ 31:0 ] and c/be [ 3:0 ] y and calculates the correspond- ing parity value and drives it on the par signal, 1 clock later. as a master during a read cycle, the pceb only drives c/be [ 3:0 ] y . the responding target drives ad [ 31:0 ] lines (data) and calculates parity based on the received c/be [ 3:0 ] y and outgoing ad [ 31:0 ] signals. the target drives par during the following clock. the pceb calculates parity based on the outgoing c/be [ 3:0 ] y and the incoming ad [ 31:0 ] signals at the end of the data phase. it compares it with the incoming value of the par signal and asserts perr y if there is no match. as a target during a write cycle, the pceb calculates parity on the incoming ad [ 31:0 ] and c/be [ 3:0 ] y signals, and compares the result on the next clock with the incoming value on the par signal. if the value does not match, the pceb asserts perr y . as a target during a read cycle, the pceb calculates parity on the incoming c/be [ 3:0 ] y and outgoing ad [ 31:0 ] signals. the pceb drives the calculated parity value during the next clock. the master of the transaction receives the data, calculates parity on its outgoing c/be [ 3:0 ] y and incoming ad [ 31:0 ] signals and compares its calculated value, on the next clock, with the parity value on the par signal (supplied by the pceb). if the values do not match, the master asserts perr y . 5.3.2 parity erroreperr y signal when the pceb is involved in a bus transaction (master or target), it asserts the perr y signal, if enabled via the pcicmd register, to indicate a parity error for the bus cycle. perr y is a sustained tri-state (s/t/s) type of signal (see section 2.0, signal description). note that pci parity errors signaled by perr y , are reported to the host processor via the esc's system interrupt control logic. when the pceb detects a parity error during one of its bus transactions, it sets the parity error status bit in the pci status register, regardless of whether the perr y signal is enabled via the pcicmd register. 5.3.3 system errors the pceb does not generate system errors (serr y ). thus, the pceb does not have the capability of indicating parity errors during the address phase in which it is a potential target (i.e. not a master). note that system errors are reported via the esc (companion chip). 84
82375eb/sb 5.4 pci bus arbitration the pceb contains a pci bus arbiter that supports six pci bus mastersthe host/pci bridge, pceb, and four other masters. the pceb's req y /gnt y signals are internal. an external arbiter is not supported. note that, for proper arbiter operation, cpureq y must be sampled high by the pceb when pcirst y makes a low-to- high transition. the internal arbiter contains several features that contribute to system efficiency: # use of the internal resume y signal to re-enable a backed-off initiator in order to minimize pci bus thrashing when the pceb generates a retry. # a programmable timer to re-enable retried initiators after a number of pciclk's. # a programmable pci bus lock or pci resource lock function. # the cpu host/pci can be optionally parked on the pci bus. in addition, the pceb has three pci sideband signals (flushreq y , memreq y , and memack y ) that are used to control system buffer coherency and control operations for the guaranteed access time (gat) mode. 5.4.1 pci arbiter configuration the pci arbitration priority scheme is programmable through the configuration registers. the arbiter consists of four banks that can be configured so that the six masters to be arranged in a purely rotating priority scheme, one of 24 fixed priority schemes, or a hybrid combination (figure 21). 85
82375eb/sb 290477 63 note: pcebreq y /pcebgnt y are pceb internal signals. figure 21. arbiter conceptual block diagram the pceb implements pci arbiter priority configuration registers arbpri and arbprix mapped in the pci's configuration space. definition of the registers are as follows: arbpri register bit description 7 bank 3 rotate control 6 bank 2 rotate control 5 bank 1 rotate control 4 bank 0 rotate control 3 bank 2 fixed priority mode select b 2 bank 2 fixed priority mode select a 1 bank 1 fixed priority mode select 0 bank 0 fixed priority mode select 86
82375eb/sb this register defaults to 04h at reset. this selects fixed mode y 4 with the cpu the highest priority device guaranteeing that bios accesses can take place. arbprix register bit description 7 bank 3 fixed priority mode select 6:0 reserved this register defaults to 00h at reset. the default value selects req1 y as a higher priority request than req2 y when bank 3 operates in the fixed priority mode. 5.4.1.1 fixed priority mode the twelve selectable fixed priority schemes are listed in table 6. table 6. fixed priority mode bank control bits mode bank priority 3 2b 2a 1 0 highest lowest 0 0 0 0 0 0 pcebreq y req0 y req1 y / cpureq y req3 y req2 y 1 0 0 0 0 1 req0 y pcebreq y req1 y / cpureq y req3 y req2 y 2 0 0 0 1 0 pcebreq y req0 y req1 y / req3 y cpureq y req2 y 3 0 0 0 1 1 req0 y pcebreq y req1 y / req3 y cpureq y req2 y 4 0 0 1 0 0 cpureq y req3 y pcebreq y req0 y req1 y / req2 y 5 0 0 1 0 1 cpureq y req3 y req0 y pcebreq y req1 y / req2 y 6 0 0 1 1 0 req3 y cpureq y pcebreq y req0 y req1 y / req2 y 7 0 0 1 1 1 req3 y cpureq y req0 y pcebreq y req1 y / req2 y 8 0 1 0 0 0 req1 y / cpureq y req3 y pcebreq y req0 y req2 y 9 0 1 0 0 1 req1 y / cpureq y req3 y req0 y pcebreq y req2 y a 0 1 0 1 0 req1 y / req3 y cpureq y pcebreq y req0 y req2 y b 0 1 0 1 1 req1 y / req3 y cpureq y req0 y pcebreq y req2 y 87
82375eb/sb table 6. fixed priority mode bank control bits (continued) mode bank priority 3 2b 2a 1 0 highest lowest x 1 1 x x reserved 10 1 0 0 0 0 pcebreq y req0 y req2 y / cpureq y req3 y req1 y 11 1 0 0 0 1 req0 y pcebreq y req2 y / cpureq y req3 y req1 y 12 1 0 0 1 0 pcebreq y req0 y req2 y / req3 y cpureq y req1 y 13 1 0 0 1 1 req0 y pcebreq y req2 y / req3 y cpureq y req1 y 14 1 0 1 0 0 cpureq y req3 y pcebreq y req0 y req2 y / req1 y 15 1 0 1 0 1 cpureq y req3 y req0 y pcebreq y req1 y / req2 y 16 1 0 1 1 0 req3 y cpureq y pcebreq y req0 y req2 y / req1 y 17 1 0 1 1 1 req3 y cpureq y req0 y pcebreq y req2 y / req1 y 18 1 1 0 0 0 req2 y / cpureq y req3 y pcebreq y req0 y req1 y 19 1 1 0 0 1 req2 y / cpureq y req3 y req0 y pcebreq y req1 y 1a 1 1 0 1 0 req2 y / req3 y cpureq y pcebreq y req0 y req1 y 1b 1 1 0 1 1 req2 y / req3 y cpureq y req0 y pcebreq y req1 y x 1 1 x x reserved note that these two tables are permutations of the same table with different value of the bank 3 fixed priority control bit. the fixed bank control bit(s) selects which requester is the highest priority device within that particular bank. bits [ 7:4 ] must be programmed to all 0's (rotate mode disabled) to get these combinations. the selectable fixed priority schemes provide 24 of the 128 possible fixed mode permutations possible for the six masters. 88
82375eb/sb 5.4.1.2 rotating priority mode when any bank rotate control bit is set to a one, that particular bank rotates between the requesting inputs. any or all banks can be set in rotate mode. if all four banks are set in rotate mode, the six supported masters are all rotated and the arbiter is in a pure rotating priority mode. if, within a rotating bank, the highest priority device (a) does not have an active request, the lower priority device (b or c) will be granted the bus. however, this does not change the rotation scheme. when the bank toggles, device b is the highest priority. because of this, the maximum latency a device can encounter is two complete rotations. 5.4.1.3 mixed priority mode any combination of fixed priority and rotate priority modes can be used in different arbitration banks to achieve a specific arbitration scheme. 5.4.1.4 locking masters when a master acquires the plock y signal, the arbiter gives that master highest priority until plock y is negated and frame y is negated. this insures that a master that locked a resource will eventually be able to unlock that same resource. 5.4.2 arbitration signaling protocol an agent requests the pci bus by asserting its req y . when the arbiter determines that an agent may use the pci bus, it asserts the agent's gnt y . figure 22 shows an example of the basic arbitration cycle. two agents (a and b) are used to illustrate how the arbiter alternates bus accesses. note in figure 22 that the current owner of the bus may keep its req y (req y -a) asserted when it requires additional transactions. req y -a is asserted prior to or at clock 1 to request use of the pci bus. agent a is granted access to the bus (gnt y -a is asserted) at clock 2. agent a may start a transaction at clock 2 because frame y and irdy y are negated and gnt y -a is asserted. agent a's transaction starts when frame y is asserted (clock 3). agent a requests another transaction by keeping req y -a asserted. when frame y is asserted on clock 3, the arbiter determines that agent b has priority and asserts gnt y -b and negates gnt y -a on clock 4. when agent a completes its transaction on clock 4, it relinquishes the bus. all pci agents can determine the end of the current transaction when both frame y and irdy y are negated. agent b becomes the pci bus owner on clock 5 (frame y and irdy y are negated) and completes its transaction on clock 7. note that req y -b is negated and frame y is asserted on clock 6, indicating that agent b requires only a single transaction. the arbiter grants the next transaction to agent a because its req y is still asserted. 89
82375eb/sb 5.4.2.1 req y and gnt y rules figure 22 illustrates basic arbitration. once asserted, gnt y may be negated according to the following rules: 1. if gnt y is negated at the same time that frame y is asserted, the bus transaction is valid and will continue. 2. one gnt y can be negated coincident with another being asserted, if the bus is not in the idle state. otherwise, a one clock delay is incurred between the negation of the current master's gnt y and assertion of the next master's gnt y , to comply with the pci specification. 3. while frame y is negated, gnt y may be negated, at any time, in order to service a higher priority master, or in response to the associated req y being negated. 4. if the memreq y and memack y are asserted, once the pceb is granted the pci bus, the arbiter will not remove the internal grant until the pceb removes it's request. 290477 64 figure 22. basic arbitration 5.4.2.2 back-to-back transactions figure 23 illustrates arbitration for a back-to-back access. there are two types of back-to-back transactions by the same initiator; those that do not require a turn-around-cycle (see section 5.1.3.1, turn-around-cycle definition) and those that do. a turn-around-cycle is not required when the initiator's second transaction is to the same target as the first transaction (to insure no trdy y contention), and the first transaction is a write. this is a fast back-to-back. under all other conditions, the initiator must insert a minimum of one turn-around- cycle. during a fast back-to-back transaction, the initiator starts the next transaction immediately, without a turn- around-cycle. the last data phase completes when frame y is negated, and irdy y and trdy y are assert- ed. the current initiator starts another transaction on the same pciclk that the last data is transferred for the previous transaction. 90
82375eb/sb as a master, the pceb does not know if it is accessing the same target, and, thus, does not generate fast back-to-back accesses. as a slave, the pceb is capable of decoding fast back-to-back cycles. 290477 65 figure 23. arbitration for back-to-back access 5.4.3 retry thrashing resolve when a pci initiator's access is retried, the initiator releases the pci bus for a minimum of two pci clocks and then normally requests the pci bus again. to avoid thrashing of the bus with retry after retry, the pci arbiter's state tracer provides req y masking. tracking retried masters requires latching gnt y during frame y so that the correct retried master can be masked. the state tracer masks a req y after that particular agent is retried on the pci bus. the state tracer differentiates between two retry events. the two events include pceb target retries and all other retries for initiators that were retried by the pceb as a target, the masked req y is flagged to be cleared upon resume y active. all other retries trigger the master retry timer (described in section 5.4.4.2, master retry timer). when this timer expires, the mask is cleared. 5.4.3.1 resume function the pceb forces a retry to a pci master (resulting in masking the req y of that master) for the following: 1. buffer management activities (see section 6.0, data buffering). 2. the eisa bus is occupied by an eisa/isa master or dma. 4. the pceb is locked as a resource and plock y is asserted during the address phase. 91
82375eb/sb 5.4.3.2 master retry timer for any other retried pci cycle, the arbiter masks the req y and flags it to be cleared by the expiration of a programmable timer. the first retry in this category triggers the programmable timer. subsequent retries in this category are masked but do not reset the timer. expiration of this programmable timer unmasks all req y s that are masked for this reason. the retry timer is programmable to 0 (disabled), 16, 32, or 64 pciclks. if no other pci masters are requesting the pci bus, all of the req y s masked for the timer are cleared and the timer is set to 0. note that when there is a pending request that is internally masked, the pceb does not park the cpu on the pci bus (i.e. pci agent that uses cpureq y /cpugnt y signal pair). 5.4.4 bus lock mode as an option, the pceb arbiter can be configured to run in bus lock mode or resource lock mode (default). the bus lock mode is used to lock the entire pci bus. this may improve performance in some systems that frequently run quick read-modify-write cycles (i.e. access to the vga frame buffer using the xchg x86 instruc- tion that automatically asserts the cpu lock y signal). bus lock mode emulates the lock environment found in today's pc by restricting bus ownership when the pci bus is locked. while bus lock mode improves performance in some systems, it may cause performance problems in other systems. with bus lock enabled, the arbiter recognizes a lock y being driven by an initiator and does not allow any other pci initiator to be granted the pci bus until lock y and frame y are both negated, indicating the master released lock. when bus lock is disabled, the default resource lock mechanism is implemented (normal resource lock) and a higher priority pci initiator could intervene between the cycles that are part of the locked sequence and run non-exclusive accesses to any unlocked resource. caution: bus lock mode should not be used with non-gat mode. if the system is initialized for both bus lock mode and non-gat mode a deadlock situation might occur in the case where the first access to the locked device is a write instead of a read and the locked device has data in its internal posted write buffer. in gat mode and/or resource lock mode this condition can not happen. if it is absolutely necessary to operate the system in the above mentioned combination of modes, then the posted write buffers of the device that might be involved in locked operations (typically semaphore in main memory) must be disabled. 5.4.5 memreq y , flshreq y , and memack y protocol before an eisa master or dma can be granted the pci bus, it is necessary that all pci system posted write buffers be flushed. also, since the eisa-originated cycle could access memory on the host/pci bridge, it is possible that the eisa master or dma could be held in wait states (via exrdy) waiting for the host/pci bridge arbitration for longer than the 2.1 m s eisa/isa specification. the pceb has an optional mode called guaranteed access time mode (gat) that ensures that this timing specification is not violated. this is accom- plished by delaying the eisa grant signal to the requesting master or dma until the eisa bus, pci bus, and the system memory bus are arbitrated for and owned. the three sideband signals, memreq y , flshreq y , and memack y are used to support the system post- ed write buffer flushing and guaranteed access time mechanism. the memack y signal is the common acknowledge signal for both mechanisms. note that, when memreq y is asserted, flshreq y is also asserted. table 7 shows the relationship between memreq y and flshreq y . 92
82375eb/sb table 7. flshreq y and memreq y flshreq y memreq y meaning 1 1 idle 0 1 flush buffers pointing towards the pci bus to avoid eisa deadlock 1 0 flush buffers pointing towards main memory for buffer coherency in apic systems 0 0 gat mode. guarantees pci bus immediate access to main memory 5.4.5.1 flushing system posted write buffers once an eisa bus owner (eisa/isa master or the dma) begins a cycle on the eisa bus, the cycle can not be backed-off. it can only be held in wait states via exrdy. in order to know the destination of eisa master cycles, the cycle needs to begin. after the cycle is started, no other device can intervene and gain ownership of the eisa bus until the cycle is completed and arbitration is performed. a potential deadlock condition exists when an eisa-originated cycle to the pci bus forces a mandatory transaction to eisa, or when the pci target is inaccessible due to an interacting event that also requires the eisa bus. to avoid this potential deadlock, all pci posted write buffers in the system must be disabled and flushed, before an eisa/isa master or dma can be granted the eisa bus. the buffers must remain disabled while the eisa bus is occupied. the following steps indicate the pceb (and esc) handshake for flushing the system posted write buffers. 1. when an eisa/isa master, dma or refresh logic requests the eisa bus, the esc component asserts eisahold to the pceb. 2. the pceb completes the present cycle (and does not accept any new cycle) and gives the eisa bus to the esc by floating its eisa interface and asserting eisahlda. before giving the bus to the esc, the pceb checks to see if it itself is locked as a pci resource. it can not grant the eisa bus as long as the pceb is locked. at this point the pceb's eisa-to-pci line buffers and other system buffers (host/pci bridge buffers) that are pointing to pci are not yet flushed. the reason for this is that the esc might request the bus in order to run a refresh cycle that does not require buffer flushing. that is not known until the eisa arbitration is frozen (after eisahlda is asserted). a. if the esc needs to perform a refresh cycle, then it negates nmflush y (an esc-to-pceb flush control signal). esc drives the eisa bus until it completes the refresh cycle and then gives the bus to the pceb by negating eisahold. b. if the esc requested the eisa bus on behalf of the eisa master, dma or isa master, then it asserts nmflush y and tri-states the eisa bus. the pceb asserts the flshreq y signal to the host/pci bridge (and other bridges) to disable and flush posted write buffers. 3. when the host/pci bridge completes its buffer disabling and flushing, it asserts memack y to the pceb. other bridges in the system may also need to disable and flush their posted write buffers pointing towards pci. this means that other devices may also generate memack y . all of the memack y s need to be ``wire-or'd''. when the pceb receives memack y indicating that all posted write buffers have been flushed, it asserts nmflush y to the esc and the esc gives the bus grant to the eisa device. 4. the pceb continues to assert flshreq y while the eisa/isa master or dma owns the eisa bus. while flshreq y is asserted the host/pci bridge must keep its posted write buffers flushed. 5. memack y should be driven inactive as soon as possible by the host/pci bridge and other bridges after flshreq y is negated. the pceb waits until it detects memack y negated before it can generate another flshreq y . 93
82375eb/sb 5.4.5.2 guaranteed access time mode when the pceb's guaranteed access time mode is enabled (via the arbcon register), memreq y and memack y are used to guarantee that the isa 2.1 m s chrdy specification is not violated. note that eisa's 2.5 m s maximum negation time of the exrdy signal is a subset of the isa requirement. thus, 2.1 m s satisfies both bus requirements. when an eisa/isa master or dma slave requests the eisa bus (mreq y or dreq y active), the eisa bus, the pci bus, and the memory bus must be arbitrated for and all three must be owned before the eisa/isa master or dma is granted the eisa bus. the following lists the sequence of events: 1. an eisa/isa master, dma, or refresh logic requests the eisa bus. the esc asserts eisahold signal to the pceb. 2. the pceb completes the present cycle (i.e. does not accept any new cycle) and gives the bus to the esc by floating its eisa interface and asserting eisahlda. before giving the bus to the esc, the pceb checks to see if it is locked as a pci resource. it can not grant the eisa bus as long as the pceb is locked. at this point, the pceb's eisa-to-pci line buffers and other system buffers (e.g., host/pci bridge buffers) that are pointing to the pci bus are not flushed. the reason is that the esc might request the bus to run a refresh cycle that does not require buffer flushing. this is not known until the eisa arbitration is frozen (after eisahlda is asserted). 3. depending on whether the pending cycle is a refresh, the esc initiates one of the following two actions: a. if the esc needs to perform a refresh cycle, then it asserts nmflush y (an esc-to-pceb flush control signal). the esc drives the eisa bus until it completes the refresh cycle and then gives the bus to the pceb by negating eisahold. b. if the esc requested the eisa bus on behalf of the eisa master, dma or isa master, then it asserts nmflush y and tri-states the eisa bus. if the pceb is programmed in gat (guaranteed access time mode), the memreq y and flshreq y signals are asserted simultaneously to indicate request for direct access to main memory and a request to flush the system's posted write buffers pointing towards the pci (including the pceb's internal buffers). these requirements are necessary to insure that once the pci and eisa buses are dedicated to the pceb, the cycle generated by the pceb will not require the pci or eisa buses, thus creating a deadlock. memreq y and flshreq y are asserted as long as the eisa/isa master or dma owns the eisa bus. 4. once the host/pci bridge has disabled and flushed its posted write buffers, and the memory bus is dedicated to the pci interface, it asserts memack y . other bridges in the system may also need to disable and flush their posted write buffers pointing towards pci due to the flshreq y signal. this means that other devices may also generate a memack y . all of the memack y s need to be ``wire-or'd''. when the pceb receives memack y , it assumes that all of the critical posted write buffers in the system have been flushed and that the pceb has direct access to main memory, located behind the host/pci bridge. 5. when memack y is asserted by the pceb, it will request the pci bus (internal pcebreq y signal). before requesting the pci bus, the pceb checks to see that the pci bus does not have an active lock. the pci bus is granted to the pceb when it wins the bus through the normal arbitration mechanism. once the pceb is granted the pci bus (internalpcebgnt y ), the pceb checks to see if plock y is negated before it grants the eisa bus. if the pci bus is locked when the pceb is granted the pci bus, the pceb releases the req y signal and waits until the plock y is negated before asserting req y again. once the pceb owns the pci bus (internal pcebgnt y ), and the memack y and memreq y signals are asserted, the pci arbiter will not grant the pci bus to any other pci master except the pceb until the pceb releases its pci req y line. 6. when the pceb is granted the pci bus (internal pcebgnt y ) and lock y is inactive, it asserts nmflush y to the esc and the esc gives the bus grant to the eisa device. 94
82375eb/sb 7. when the eisa bus is no longer owned by an eisa master or dma, the pceb negates memreq y and flshreq y and the pci request signal (internal pcebreq y . the negation of memreq y and flshreq y indicates that direct access to the resource behind the bridge is no longer needed and that the posted write buffers may be enabled. note that memack y should be driven inactive as soon as possible by the host/pci bridge and other bridges after memreq y is negated. the pceb waits until it detects memack y negated before it can generate another memreq y or flshreq y . the use of memreq y , flshreq y , and memack y does not guarantee gat mode functionality with isa masters that don't acknowledge chrdy. these signals just guarantee the chrdy inactive specification. 5.4.5.3 interrupt synchronization-buffer flushing the esc contains the system interrupt controller consisting of an 8259 compatible interrupt controller and an i/o apic. for the 8259 compatible interrupt controller, the pceb/esc chip set is the default destination of the pci interrupt acknowledge cycles. interrupts in the system are commonly used as a synchronization mecha- nism. if interrupts are used by the eisa agents to notify the host cpu that data is written to main memory, then posted data buffers must be flushed before the vector is returned during the interrupt acknowledge sequence. the pceb handles this transparently to the rest of the system hardware/software. it retries the pci interrupt acknowledge cycles and flushes the pceb line buffers, if necessary. the advanced programmable interrupt controller (apic) uses a private message passing bus to send interrupt information to the companion apic(s) residing at the host cpu(s). to support interrupts as a synchronization mechanism, system buffer coherency must be guaranteed before interrupts can be processed. with esc's interrupt controller operating in apic mode the pceb and esc use the pceb/esc interchip signal aflush y to maintain system buffer coherency. 5.4.6 bus parking pci bus parking can be enabled/disabled via the arbcon register. parking is only allowed for the device that is connected to cpureq y (i.e. the host/pci bridge). req [ 3:0 ] y , and the internal pcebreq y are not allowed to park on the pci bus. when bus parking is enabled, cpugnt y is asserted when no other agent is currently using or requesting the bus. this achieves the minimum pci arbitration latency possible. arbitration latency parked: 0 pciclks for parked agent, 2 pciclks for all other. not parked: 1 pciclk for all agents. upon assertion of cpugnt y due to bus parking enabled and the pci bus idle, the cpu (i.e., parked agent) must ensure ad [ 31:0 ] , c/be [ 3:0 ] y , and (one pciclk later) par are driven. if bus parking is disabled, then the pceb drives these signals when the bus is idle. 95
82375eb/sb 5.4.7 pci arbitration and pceb/esc eisa ownership exchange there are two aspects of pceb/esc eisa bus ownership exchange that are explained in this section. they are related to gat mode and resume/retry operations. the pceb is the default owner of the eisa bus. when control of the eisa bus is given to the esc, all pci operations targeted to the eisa subsystem (including the pceb) are retried. retry causes assertion of the pereq y /inta y signal with pereq y semantics. in this way, the pceb indicates to the esc that it needs to obtain ownership of the eisa bus. 5.4.7.1 gat mode and pereq y signaling in gat mode, the pceb owns the pci bus on behalf of the eisa master and other pci agents (e.g., the host/ pci bridge) can not generate pci cycles. therefore, the pceb never generates a back-off (i.e. retry), as long as the eisa bus is controlled by the esc. this might cause starvation of the pci agents (including the host/ pci bridge i.e., cpu) even in the case of a moderately loaded eisa subsystem. the solution is that pereq y , in the gat mode, is generated when any of the pci bus request signals are asserted. for particular host/pci bridge designs (e.g. pcmc) this will be not be an adequate solution since their pci request can be activated only based on the cpu generated cycle directed to pci. this will not be possible since the host bus (cpu bus) in the gat mode is controlled by the host/pci bridge and not by the cpu. the solution to this type of design is to generate pereq y immediately after entering the gat mode. this feature is controlled via arbcon register (bit 7). 5.4.7.2 pci retry and eisa latency timer (elt) mechanism when a pci cycle is retried by the pceb (in non-gat mode) because the eisa bus is controlled by the esc (eisahlda asserted), an internal flag is set for the corresponding pci master. this flag masks the request of a particular master until the pceb acquires the ownership of eisa and the resume condition clears the flag. if the pci master, which is now unmasked, does not acquire the ownership of the pci bus within the time period before esc asserts eisahold again, the eisa bus can be surrendered to the esc. unmasked masters will eventually gain the access to the pci bus but the eisa bus will not be available and the master will be retried again. this scenario can be repeated multiple times with one or more pci masters and starvation will occur. to solve this situation, the pceb arbitration logic incorporates an eisa latency timer mechanism. this mechanism is based on the programmable timer that is started each time that the esc requires the bus (eisahold asserted) and there is a pci agent that has been previously retried because of activity on the eisa bus. as soon as the elt timer expires, any pci cycle which is currently in progress is retried and the eisa bus is given back to the esc after the current pci-to-eisa transaction completes. if all the pci request- ers, masked because of eisahlda, are serviced before the elt timer expires, the eisa bus is immediately surrendered to the esc. the elt provides a minimum time slice for pci masters to access the eisa bus even if eisa masters, isa masters or dma devices are attempting to acquire the eisa bus. generally, the elt is set to a larger value if latency sensitive pci masters which typically access eisa are present in the system. larger elt values, however, do increase the worst case latency for eisa devices which typically access devices on pci (e.g. main memory). the eisa latency timer (elt) is controlled by the eltcr register. the value written into eltcr is system dependent. it is typically between 1 and 3 m s. 96
82375eb/sb 6.0 data buffering the pceb contains data buffers (figure 24) to isolate the pci bus from the eisa bus and to provide concur- rent eisa and pci bus operations and apic operations. the line buffers are used for eisa-to-pci memory reads and writes. a control bit in the epmra registers permis the line buffers to be enabled (accesses are buffered) or disabled (accesses are non-buffered). non-buffered accesses use the bypass path. note that pci and eisa i/o read/write cycles and pci configuration cycles are always non-buffered and use the bypass path. when data is temporarily stored in the buffers between the eisa bus and pci bus, there are potential data coherency issues. the pceb guarantees data coherency by intervening when data coherency could be lost and either flushing or invalidating the buffered data, as appropriate. 290477 67 figure 24. pceb data buffers 97
82375eb/sb 6.1 line buffers the pceb contains four line buffers that are each four dwords wide (16 bytes). the line buffers are bi-direc- tional and are used by the eisa/isa master and dma to assemble/disassemble data. the data in each line buffer is aligned on 16 byte boundaries. when data is placed in one of the line buffers, the pceb maintains the corresponding 16-byte boundary address until the data in the line is transferred to its destination or invalidated. the line buffers can be enabled/disabled by writing to the pcicon register. in addition, when the line buffers are enabled via the pcicon register, buffering for accesses to the four programmable eisa-to-pci memory regions (region [ 4:1 ] ) can be selectively disabled via the epmra register. during buffer operations, the four line buffers, collectively, are either in a write state or in a read state. these states are described in the following sections. 6.1.1 write state if a line buffer contains valid write data, it is in a write state . in the write state, data from the eisa/isa master or dma is posted in the line buffers. posting means that the write operation on the eisa bus completes when the data is latched in the buffer. the eisa master does not have to wait for the write to complete to its destination (memory on the pci bus). posting permits the eisa bus cycle to complete in a minimum time and permits concurrent eisa and pci bus operations. during posting, data accumulates in the line buffer until it is flushed (written to pci memory) over the pci bus. a line buffer is scheduled for flushing by the pceb when: # the line becomes full. # a subsequent write is a line miss (not within the current line boundary address range). # the write is to an address of a lower dword than the previous write. note that writes to lower addresses within the same dword do not cause a flush. note also, that if two (or more) consecutive eisa bus cycles are writes to the same dword (i.e., the same byte or word locations within the dword, or the same dword for dword writes) , the accessed buffer data is overwritten. however, if any of the flush conditions described in this list occur between the writes, the line is flushed before the next write and data is not overwritten. # the last address location in the line buffer is accessed. # a subsequent cycle is a read. # the eisa bus changes ownership. # an interrupt acknowledge cycle is encountered. # the esc performs an eisa refresh cycle. # the esc's i/o apic receives an interrupt request. when a line is scheduled for flushing, the pceb begins arbitration for the pci bus. if more than one line is scheduled to be flushed, the line buffers are flushed in a ``first scheduled, first to be flushed'' order. if the line to be flushed contains valid data in only one dword, the pceb uses a single data transfer cycle on the pci bus. otherwise, flushing operations use burst transfers. during flushing, write data within a line buffer is packetized into dword quantities, when possible, for a burst transfer over the 32-bit pci bus. packetizing occurs at two levels - dwords within a line and bytes/words within a dword. when a line buffer is flushed, all of the valid dwords within the line are packetized into a single pci burst write cycle. in addition, all valid data bytes within a dword boundary are packetized into a single data phase of the burst cycle. packetizing reduces the pci arbitration latency and increases the effective pci bus bandwidth. when multiple line buffers are schedule for flushing, each line buffer is packetized separately. packetizing across line buffer boundaries is not permitted. 98
82375eb/sb during flushing, strong ordering is preserved at the dword level (i.e., the dwords are flushed to pci memory in the same order that they were written into the line buffer). note, however, that strong ordering is not pre- served at the byte or word levels (i.e., even if byte or word transfers were used by the eisa/isa master or dma to sequentially write to a dword within a line buffer, all of the bytes in the resulting dword boundary are simultaneously flushed to pci memory). because strong ordering is not preserved within a dword boundary, care should be used when accessing memory-mapped i/o devices. if the order of byte or word writes to a memory-mapped i/o device needs to be preserved, buffered accesses should not be used. by locating memory-mapped i/o devices in the four pro- grammable eisa-to-pci memory regions, buffering to these devices can be selectively disabled. 6.1.2 read state if a line buffer contains valid read data, it is in a read state . read data is placed in the line buffer by two pceb mechanisms - fetching and prefetching. data is placed in the line buffer on demand (fetching) when the data is requested by a read operation from the eisa/isa master or dma. the pceb also prefetches data that has not been explicitly requested but is anticipated to be requested. once in the line buffer, data is either read by the eisa/isa master or dma (and then invalidated) or invalidated without being read. read data is invali- dated when: # data in the line buffer is read (transferred to the eisa/isa master or dma). this prevents reading of the same data more than once. # a subsequent read is a line miss (not to the previously accessed line buffer). valid data in the current line buffer is invalidated. if a new line had been prefetched during access to the current line, data in the prefetched line is not invalidated, unless the access also misses this line. in this case, the data in the prefetched line is invalidated. # a subsequent cycle is a write. data in all line buffers are invalidated. if the requested data is in the line buffer, a line hit occurs and the pceb transfers the data to the eisa/isa master or dma (and invalidates the hit data in the buffer). if eisa bus reads hit two consecutive line address- es, the pceb prefetches the next sequential line of data from pci memory (using a pci bus burst transfer). this prefetch occurs concurrently with eisa bus reads of data in the already fetched line buffer. if consecu- tive addresses are not accessed, the pceb does not prefetch the next line. a line miss occurs if the requested data is not in the line buffer. if a line miss occurs, the pceb invalidates data in the missed line buffer. if the requested data is in a prefetched line, the read is serviced. if a line was not prefetched or the read missed the prefetched line, the pceb invalidates any prefetched data and fetches the dword containing the requested data. during this fetch, the pceb holds off the eisa/isa master or dma with wait states (by negating exrdy). when the requested data is in the line buffer, it is transferred to the eisa bus. simultaneously with the eisa bus transfer, the pceb prefetches the rest of the line data (dwords whose addresses are within the line and above the dword address of the requested data). the dword contain- ing the requested data and the rest of the dwords in the line (located at higher addresses) are fetched from pci memory using a burst transfer, unless the requested data is in the last dword of a line. in this case, a single cycle read occurs on the pci bus. for purposes of data read operations, all four 4-dword buffers are used to form two 8-dword lines (32 bytes each). there are only tow address pointers, one for each line. fetching fractions of a line is accomplished as described above (i.e., starting from the first requested dword). the msburst y input signal is used to supplement control of the prefetch sequence. the msburst y signal is activated only when an eisa master desires to do burst transfers to access sequential data (although this is not an absolute eisa rule, i.e., theoretically the data can be non-sequential after an eisa slave indicates its ability via slburst y ). this will occur during the first data transfer. 99
82375eb/sb the line buffer control logic dynamically switches between two prefetch modesehalf line prefetch (16 bytes fetch) and full line prefetch (32 bytes fetch) the prefetch control logic has implemented a sequential access flag which is cleared before the initial prefetch. initial prefetch (first data fetch) starts in the half line prefetch mode and is extended to full line prefetch mode immediately after msburst y is sampled asserted at which time the sequential access flag is automatically set (this is done on-the-fly during the first line fetch). if after the initial prefetch the sequential access flag has not been set (msburst y remained not asserted) and the control logic recognizes two consecutive hits (in incrementally sequential dwords including the first one which is originally requested), the sequential access flag is set and the prefetch control logic switches to full line prefetch mode. an additional 32-byte line (or fraction depending on alignment) will be fetched. when the sequential access flag is set, prefetching is accomplished using the full line prefetch mode. each time a line buffer (32 bytes) is available, an additional line will be fetched as long as the sequential access flag remains set. when out-of-order access is recognized within the prefetched data or a miss occurs when there is valid fetched data, the sequential access flag is cleared and the prefetch mode changes to half line prefetch. also, the sequential access flag is cleared when msburst y transitions from active to inactive. when the sequential access flag is not asserted, the prefetch control logic operates in half line prefetch mode during which only 16 bytes of data is fetched at a time. the same test for sequential access is repeated, and if access is recognized, the sequential access flag is set and the control switches to full line prefetch mode. 6.2 buffer management summary table 8 shows line buffer for different cycles. note that the first three columns together define the cycles that may trigger buffer activity. table 8. buffer management summary master cycle type slave line buffer data line buffer data (origin) (destination) in write state in read state pci memory read eisa flush no action pci memory write eisa no action invalidate pci i/o read eisa flush no action pci i/o write eisa no action invalidate pci interrupt acknowledge pceb/esc flush no action pci configuration cycle pceb registers no action no action pci memory read/write pci no action no action pci i/o read/write pci no action no action eisa bus ownership change e flush no action eisa memory read/write eisa no action no action 100
82375eb/sb table 8. buffer management summary (continued) master cycle type slave line buffer data line buffer data (origin) (destination) in write state in read state eisa memory read/write pci (note 1) (note 1) eisa i/o read/write eisa no action no action eisa i/o read/write pci flush invalidate esc's i/o apic apic bus message transfer local apic flush no action notes: 1. change from write to read operation or from read to write causes the line buffers to be flush or invalidate, respectively. 2. locked cycles (both from pci and eisa) are not buffered within the pceb. they are processed using the bypass path. 7.0 eisa interface the pceb provides a fully eisa bus compatible master and slave interface. this interface provides address and data signal drive capability for eight eisa slots and supports the following types of cycles: # pci-initiated memory and i/o read/write accesses to an eisa/isa device. # eisa/isa/dma-initiated memory and i/o read/write accesses to a pci device (i.e. via the line buffers, if necessary). # accesses contained within the eisa bus (only data swap buffers involved). for transfers between the eisa bus and pci bus, the pceb translates the bus protocols. for pci master-ini- tiated cycles to the eisa bus, the pceb is a slave on the pci bus and a master on the eisa bus. for eisa master-initiated cycles to the pci bus, the pceb is a slave on the eisa bus and a master on the pci bus. note: 1. the pceb is not involved in refresh cycles on the eisa bus. when the refresh y signal is asserted, the pceb disables eisa bus address decoding. 2. wait state generation on the eisa bus is performed by the esc. isa memory slaves (8 or 16 bits) and isa i/o slaves can shorten their default or standard cycles by asserting the nows y signal line. it is the responsibility of the esc to shorten these cycles when nows y is asserted. note that isa i/o 16-bit devices can shorten their cycles by asserting nows y . if chrdy and nows y are driven low during the same cycle, nows y will not be used and wait states are added as a function of chrdy. for more details on the wait state generation and the nows y signal, refer to the esc data sheet. 3. all locked pci cycles (plock y asserted) destined to the eisa bus are converted to eisa locked cycles using the lock y signal protocol. the pceb is a locked resource during these cycles and maintains control of the eisa bus until the locked pci sequence is complete. 4. all locked eisa cycles (lock y asserted) destined to pci are converted to pci locked cycles using the plock y signal protocol. the plock y signal remains active as long as the eisa lock y signal is asserted. 101
82375eb/sb 5. the pceb contains eisa data swap buffers for data size translations between mismatched pci bus and eisa bus transfers and between mismatched devices contained on the eisa bus. thus, if data size translation is needed, the pceb is involved in cycles contained to the eisa bus, even if the pceb is neither the master or slave. for data size translation operations, see section 8.0, eisa data swap buffers. 6. for isa master cycles to pci memory or i/o, the esc translates the isa signals to eisa signals. the pceb, as an eisa slave, forwards the cycle to the pci bus. 7. for isa master cycles to isa/eisa slaves, the pceb is not involved, except when the cycle requires data size translations. see the esc data sheet for cycles that are contained within the eisa bus (i.e., eisa-to-eisa, eisa-to-isa, isa-to-isa, and isa-to-eisa device cycles). 8. in this section, la [ 31:24 ] y and la [ 23:2 ] are collectively referred to as la [ 31:2 ] . 7.1 pceb as an eisa master the pceb is an eisa master for pci-initiated cycles targeted to the eisa bus. when the pceb decodes the pci cycle as a cycle destined to the eisa bus (via subtractive or negative (82374sb only) decoding, as described in section 4.0, address decoding), the pceb becomes a slave on the pci bus. if the pceb owns the eisa bus, the cycle is forwarded to the eisa/isa device. if the pceb does not own the eisa bus (eisaholda is asserted to the esc), the pci master is retried and the pceb issues an eisa bus request to the esc. for pci-to-eisa i/o and memory read/write accesses, the pceb runs standard eisa bus cycles. when cycles are forwarded to a matched eisa/isa slave, the pceb is the eisa master and controls the transfer until the cycle is terminated. for mismatched cycles to an eisa/isa slave, the pceb backs off the eisa bus as described in section 7.1.3, back-off cycle. 7.1.1 standard eisa memory and i/o read/write cycles the standard eisa cycle completes one transfer each two bclk periods (zero wait states). the standard eisa memory or i/o cycle begins when the pceb presents a valid address on la [ 31:2 ] and drives m/io y high for a memory cycle and low for an i/o cycle. the address can become valid at the end of the previous cycle to allow address pipelining. the eisa slave decodes the address and asserts the appropriate signals to indicate the type of slave and whether it can perform any special timings. the slave asserts ex32 y or ex16 y to indicate support of eisa cycles. for extended cycles, the eisa slave introduces wait states using the exrdy signal. wait states allow a slower slave to get ready to complete the transfer. the slave negates exrdy after it decodes a valid address and samples start y asserted. the slave may hold exrdy negated for a maximum of 2.5 m s to complete a transfer, and must release exrdy synchronous to the falling edge of bclk to allow a cycle to complete. note that the pceb, as an eisa master, never introduces wait states. figure 25 shows three data transfer cycles between an eisa master and an eisa slave. the first transfer is an extended transfer (exrdy negated), followed by two standard cycles. for pci cycles that are forwarded to the eisa bus, the pceb is the eisa master. the pceb asserts start y to indicate the start of a cycle. the pceb also drives w/r y to indicate a read or write cycle and be [ 3:0 ] y to indicate the active bytes. the la [ 31:2 ] and the be [ 3:0 ] remain valid until after the negation of start y . a slave that needs to latch the address does so on the trailing edge of start y . the esc asserts cmd y simultaneously with the negation of start y to control data transfer to or from the slave. if a read cycle is being performed, the slave presents the requested data when cmd y is asserted and holds it valid until cmd y is negated by the esc. for a write cycle, the pceb presents the data prior to the assertion of cmd y and the slave latches it on or before the trailing edge of cmd y . 102
82375eb/sb 290477 68 figure 25. eisa memory and i/o read/write cycle (one extended and two standard cycles) 7.1.2 eisa back-off cycle for mismatched cycles to an eisa/isa slave, the pceb, as a master, backs off the eisa bus by floating the start y ,be [ 3:0 ] y and sd [ 31:0 ] signals one and half bclks after start y has been asserted. the esc controls the eisa bus for the duration of the cycle. this allows the esc to perform data translation, if necessary. at the end of the cycle, the esc transfers control back to the pceb by asserting ex16 y and ex32 y on the falling edge of bclk, before the rising edge of bclk that the last cmd y is negated. refer to the esc data sheet for further details on master back-off and the cycle transfer control operations. figure 26 shows an example of a back-off sequence during a 32-bit eisa master to 16-bit eisa slave dword read and write operation. the thick lines indicate the change of control between the master and the esc. pceb reading from a 16-bit eisa slave as a 32-bit eisa master, the pceb begins by placing the address on la [ 31:2 ] and driving m/io y . the 16-bit eisa slave decodes the address and asserts ex16 y . the pceb asserts start y , w/r y , and be [ 3:0 ] y . the esc samples ex32 y and ex16 y on the rising edge of bclk following the assertion of start y and asserts cmd y . at the same time, the pceb negates start y and samples ex32 y . when ex32 y is sampled negated, the pceb floats start y and be [ 3:0 ] y . note that, the pceb continues to drive a valid address on la [ 31:0 ] . 103
82375eb/sb the esc negates cmd y after one bclk period unless the slave adds wait states (negates exrdy). the esc latches sd [ 15:0 ] into the pceb's data swap buffer on the trailing edge of cmd y . the esc controls the pceb data swap buffers via the pceb/esc interface. the esc then asserts start y and presents be [ 3:0 ] (upper word enabled). the esc negates start y and asserts cmd y . the slave latches the address on the trailing edge of start y and presents data on sd [ 15:0 ] . the esc negates cmd y after one bclk, unless the slave negates exrdy. the esc latches sd [ 15:0 ] into the pceb data swap buffers on the trailing edge of cmd y and instructs the pceb data swap buffer to copy d [ 15:0 ] to d [ 31:0 ] and asserts ex32 y . note that, since the transfer is intended for the pceb, the data is not re-driven back out onto the eisa bus. the esc floats the start y and be [ 3:0 ] y . the pceb regains control of the eisa bus after sampling ex32 y and ex16 y asserted. pceb writing to a 16-bit eisa slave as a 32-bit eisa master, the pceb begins by placing the address on la [ 31:2 ] and driving m/io y . the 16-bit eisa slave decodes the address and asserts ex16 y . the pceb asserts start y , w/r y ,be [ 3:0 ] y , and sd [ 31:0 ] . the esc samples ex32 y and ex16 y on the rising edge of bclk following the assertion of start y and asserts cmd y . at the same time, the pceb negates start y and samples ex32 y . when ex32 y is sampled negated, the pceb floats start y ,sd [ 31:0 ] , and be [ 3:0 ] y . the data is latched in the pceb's data swap buffers. note that the pceb continues to drive a valid address on la [ 31:2 ] . the esc instructs the pceb to drive the data out on sd [ 31:0 ] and asserts cmd y after sampling ex32 y negated. the slave may sample sd [ 15:0 ] while cmd y is asserted. the esc negates cmd y after one bclk, unless the slave adds wait states (negates exrdy). the esc then presents be [ 3:0 ] (upper word enabled) and asserts start y . the esc instructs the pceb to copy sd [ 31:0 ] to sd [ 15:0 ] , negates start y and asserts cmd y . the esc negates cmd y after one bclk, unless the slave negates exrdy. the slave latches the address on the trailing edge of start y and samples sd [ 15:0 ] on the trailing edge of cmd y . the esc returns control of the eisa bus to the pceb by floating be [ 3:0 ] y and start y , then asserting ex32 y . the pceb samples ex32 y and ex16 y asserted on the rising edge of bclk. 104
82375eb/sb 290477 70 figure 26. eisa back-off cycle 7.2 pceb as an eisa slave the pceb is an eisa slave for eisa/isa/dma-initiated cycles targeted to the pci bus. if the pceb positively decodes the address (access to one of the eisa programmed main memory segments or access to one of the programmable eisa-to-pci memory or i/o regions), the pceb becomes an eisa slave and the cycle is forwarded to the pci bus. if the pceb does not positively decode the address, the cycle is contained to the eisa bus. for cycles contained to the eisa bus (i.e., eisa-to-eisa, eisa-to-isa, isa-to-isa, and isa-to-eisa device cycles), the pceb is only involved when data size translation is needed. the pceb responds as a 32-bit eisa slave. if the eisa master size is not 32 bits, the cycle is a mismatch and invokes data size translation. for details on data size translation, refer to section 8.0, eisa data swap buffers. 105
82375eb/sb all eisa master memory read cycles to pci memory start as extended cycles, unless the cycle triggers a read hit to one of the four line buffers. if the data is available in the line buffers, the pceb supplies the data to the eisa master without adding wait states. otherwise, the cycle is extended (wait states added via exrdy) until the data is available. note that for non-buffered accesses, the eisa cycle is always extended until data is available from the pci bus. if the line buffers are enabled, write cycles to pci memory are posted in the line buffers. if the write can be immediately posted, wait states are not generated on the eisa bus. otherwise, the cycle is extended (via wait states) until the data can be posted. note that writes can be posted to available line buffers concurrently with other line buffers being flushed to the pci bus. all eisa master i/o read/write accesses to pci i/o space are non-buffered and always start as extended cycles. data transfer on the eisa bus occurs when the requested data is available from the pci bus. for mismatched cycles to the pceb, the eisa/isa master backs off the eisa bus as described in section 7.1.3, back-off cycle. 7.2.1 eisa memory and i/o read/write cycles the standard eisa cycle completes one transfer each two bclk periods (zero wait states). the standard eisa memory or i/o cycle begins with the eisa master presenting a valid address on la [ 31:2 ] and driving m/io y high for a memory cycle and low for an i/o cycle. the address can become valid at the end of the previous cycle to allow address pipelining. when the pceb positively decodes the address, it asserts ex32 y to indicate 32-bit support. for memory cycles, the pceb also asserts slburst y to indicate support for burst transfers. for extended cycles, the pceb introduces wait states using the exrdy signal. the pceb may hold exrdy negated for a maximum of 2.5 m s to complete a transfer, and releases exrdy synchronous to the falling edge of bclk to allow a cycle to complete. figure 27 shows three data transfers between an eisa master and an eisa slave. the first transfer is an extended transfer (exrdy negated), followed by two standard cycles. for eisa cycles that are forwarded to the pci bus, the pceb is an eisa slave. the eisa master asserts start y to indicate the start of a cycle. the eisa master also drives w/r y to indicate a read or write cycle and be [ 3:0 ] y to indicate the active bytes. the la [ 31:2 ] and the be [ 3:0 ] remain valid until after the negation of start y . the pceb latches the address on the trailing edge of start y . the esc asserts cmd y simultaneously with the negation of start y to control data transfer to or from the pceb. if a read cycle is being performed, the pceb presents the requested data when cmd y is asserted and holds it valid until cmd y is negated by the esc. for a write cycle, the eisa master must present the data prior to the assertion of cmd y and the pceb latches it on the trailing edge of cmd y . 106
82375eb/sb 290477 71 figure 27. eisa memory and i/o read/write cycles (one extended and two standard cycles) 7.2.2 eisa memory burst cycles the eisa burst cycles permit a continuous sequence of read or write cycles in zero wait-states (1 bclk per transfer). a burst transfer is either all reads or all writes. mixed cycles are not allowed. as an eisa slave, the pceb supports burst memory reads and burst memory writes from/to its line buffers. figure 28 shows an example of a burst sequence for both memory reads and writes on the eisa bus. during the particular burst sequence, five data transfers occur with a wait state added on the third data transfer. the first transfer in a burst transfer begins like the standard cycle described above. the eisa master presents a valid address on la [ 31:2 ] . the pceb, after decoding the address and m/io y , responds by asserting slburst y . the eisa master must sample slburst y on the rising edge of bclk at the trailing edge of start y . the eisa master asserts msburst y on the falling edge of bclk and presents a second address to the pceb. the esc holds cmd y asserted while the burst is being performed. if msburst y is not asserted by the master, the cycle is run as a standard cycle. if the cycle is a burst read, the eisa master presents burst addresses on the falling edge of every bclk. the pceb presents the data for that address, which is sampled one and half bclks later. if the cycle is a burst write, the eisa master presents the data on the rising edge of bclk, a half cycle after presenting the address. the pceb samples memory write data on the rising bclk edge when cmd y is asserted (regardless of the state of msburst y ). the eisa master terminates the burst cycles by negating msburst y and completing the last transfer. 107
82375eb/sb to add wait states during a burst sequence, the pceb negates exrdy before the falling edge of bclk (with cmd y asserted). the eisa master samples exrdy on the falling edge of bclk and extends the cycle until exrdy is asserted. the eisa master can still change the next address even though exrdy is negated. 290477 72 figure 28. eisa burst cycle 7.3 i/o recovery the i/o recovery mechanism in the pceb guarantees a minimum amount of time between back-to-back 8-bit and 16-bit pci cycles to isa i/o slaves. delay times (in bclks) for 8-bit and 16-bit cycles are individually programmed via the iort register. accesses to an 8-bit device followed by an access to a 16-bit device use the 8-bit recovery time. similarly, accesses to a 16-bit device followed by an access to an 8-bit device use the 16-bit recovery time. the pceb cycles to eisa i/o, dma cycles, and eisa/isa bus masters to i/o slaves do not require any delay between back-to-back i/o accesses. 108
82375eb/sb note that i/o recovery is only required for isa i/o devices. however, since the pceb does not distinguish between 8-bit isa and 8-bit eisa, the delay is also applied to 8-bit eisa i/o accesses (i.e. the esc). 8.0 eisa data swap buffers the pceb contains a set of buffers/latches that perform data swapping and data size translations on the eisa bus when the master and slave data bus sizes do not match (e.g., 32-bit eisa master accessing a 16-bit eisa slave). during a data size translation, the pceb performs one or more of the following operations, depending on the master/slave type (pci/eisa/isa), transfer direction (read/write), and the number of byte enables active (be [ 3:0 ] y ): # data assembly or disassembly # data copying (up or down) # data re-drive these operations are described in this section. an example is provided in section 8.3, the re-drive opera- tion, that shows a cycle where all three functions are used. the pceb performs data size translations on the eisa bus using the data swap buffer control signals generat- ed by the esc. these signals are described in section 10.0, pceb/esc interface. 8.1 data assembly and disassembly the data assembly/disassembly process occurs during pci, eisa/isa, and dma cycles when the master data size is greater than the slave data size. for example, if a 32-bit pci master is performing a 32-bit read cycle to an 8-bit isa slave, the esc intervenes and performs four 8-bit reads. the data is assembled in the pceb (figure 29). once assembled, the pceb transfers the data as a single dword to the 32-bit pci master during the fourth cycle. for a 32-bit write cycle, the pceb disassembles the dword by performing four write cycles to the slave. the actual number of cycles required to perform an assembly/disassembly process and make a transfer is a function of the number of bytes (be [ 3:0 ] y ) requested and the master/slave size combination. during eisa master assembly/disassembly transfers, cycle control is transferred from the master to the esc. the master relinquishes control by backing off the bus (i.e., by floating its start y ,be [ 3:0 ] , and sd [ 31:0 ] signals on the first falling edge of bclk after start y is negated). the esc controls the assembly/disassem- bly process in the pceb via the data swap buffer control signals on the pceb/esc interface. at the end of the assembly/disassembly process, cycle control is transferred back to the bus master (by the esc asserting ex16 y and ex32 y ). an additional bclk is added at the end of the transfer to allow the exchanging of cycle control to occur. during dma transfers, cycle control is maintained by the esc for the entire cycle. 109
82375eb/sb 290477 73 figure 29. assembly function: pci 32-bit read from an 8-bit eisa or isa slavebe [ 3:0 ] y e 0000 8.2 the copy operation (up or down) the copy operation (figure 30) is invoked during data transfers between byte lanes. this operation allows the assembly/ disassembly of the data pieces during the cycles between mismatched master/slave combinations. for example, section 8.1, data assembly and disassembly, describes a 32-bit master read from an 8-bit slave where the data is copied up during the assembly process. copy-up is used for data assembly and copy-down is used for data disassembly. the copy-up and copy-down operations are also used during transfers where assembly or disassembly are not required. these transfers are: # when the master size is smaller than the slave size (e.g. 16-bit eisa master cycle to a 32-bit eisa slave). # between a mis-matched master/slave combination when only a byte or a word needs to be transferred (e.g. 32-bit eisa master cycle to an 8-bit isa slave and only a byte needs to be transferred). the number of bytes copied up or down is a function of the number of bytes requested (be [ 3:0 ] y ) and the master/slave size combinations. during eisa master cycles where the data copying is performed, cycle control is transferred from the bus master to the esc, except during transfers where the master's data size is smaller than the slave's data size. during dma transfers, bus control is maintained by the esc throughout the transfer. 110
82375eb/sb 290477 74 figure 30. copy function: pci 16-bit read from a 16-bit eisa or isa slaveebe [ 3:0 ] y e 0011 8.3 the re-drive operation the re-drive operation (figure 31) is used when both the master and the slave, other than pceb, are on the eisa bus and the master/slave size combination is mis-matched. specifically, re-drive occurs: # during eisa master and dma cycles (excluding dma compatible cycles) where the master's data size is greater than the slave's data size. # during eisa master cycles to isa slaves where the master/slave match in the size. # during dma burst write cycles to a non-burst memory slave. during a re-drive cycle, the data is latched from the eisa bus, and then driven back onto the appropriate eisa byte lanes. during a read cycle, the re-drive occurs after the necessary sub-cycles have been completed and the read data has been assembled. for example, when a 32 bit eisa master (other than pceb) performs 32 bit read from an 8 bit eisa slave, the following sequence of events occurs: 1. the 32-bit eisa master initiates the read cycle. since the master/slave combination is a mis-match, the master backs off the bus. the eisa master floats its start y ,be [ 3:0 ] y and sd [ 31: 0 ] lines. the cycle control is then transferred to the esc. 2. the esc brings in the first 8 bit data (byte 0) in the first cycle. the esc asserts sdle0 y to the pceb. 3. when sdle0 y is asserted, the pceb latches byte 0 into the least significant byte lane. 4. in the second cycle, the esc reads the next 8 bit data (byte 1). the pceb uses sdle1 y , sdcpyup and sdcpyen0-1 y to latch byte 1 and copy it to the second least significant byte lane (copy-up). this process continues for byte 2 and byte 3. on the fourth cycle, the dword assembly is complete. during each of the 4 cycles, the esc generates be [ 3:0 ] y combinations. 111
82375eb/sb 5. the esc instructs the pceb to re-drive the assembled word to the master by asserting sdoe [ 2:0 ] y . in this case, all three sdoe [ 2:0 ] y signals are asserted. 6. when sdoe [ 2:0 ] y are asserted, the pceb drives the 32 bit assembled data on sd [ 31:0 ] to be latched by the master. the esc generates the byte enables (be [ 3:0 ] y ). 7. the esc completes the transfer. 8. at the end of the cycle, the esc transfers control of the eisa bus back to the eisa master. during a write cycle, the re-drive occurs after the write data from the master has been latched, and before the data has been disassembled. for example, during a 32-bit write by a 32-bit eisa master to an 8-bit eisa slave, in the first cycle of transfer, the data swap buffers latch the write data (dword) from the master and drives the first byte back onto the lower byte lane of the eisa bus. the eisa slave uses the byte enable (be [ 3:0 ] y ) combination put out by the eisa master during the first cycle to latch the least significant byte. for the subsequent cycles, the be [ 3:0 ] y combination is generated by the esc. the pceb re-drives the second, third and the fourth byte on the second, third and the fourth cycles of the transfer. the number of cycles run is a function of the number of bytes requested (be [ 3:0 ] y ), and the master/slave size combinations. during eisa master and dma write cycles between master and slave combinations on the eisa/isa bus, where only copying is required and no assembly/disassembly is required, the data swap buffer treats this as a re-drive cycle. for example, during a write transfer between a 32-bit eisa master and a 16-bit eisa or isa slave, where the master is driving data on the upper two byte lanes (be [ 3:0 ] y e 0011), the data swap buffers latch the data on the byte lanes 2 and 3 (figure 32). the data swap buffers will then re-drive the data onto byte lanes 2 and 3 while copying the data down to byte lanes 0 and 1, for latching by the slave device. when the pceb is involved as a master or slave, the re-drive function is disabled. when the pceb reads 32-bit data from an 8-bit slave the following sequence of events occurs: 1. same steps as steps 1-4 in the previous example. 2. once the assembly is complete, the pceb internally latches the data. 3. the control is transferred back to the pceb. note: during eisa master cycles that require re-driving, the control is transferred from the eisa master to the esc before the data is re-driven on the data bus. however; during the dma cycles, the cycle control is maintained by the esc throughout the entire cycle. 112
82375eb/sb 290477 75 figure 31. re-drive function: 32-bit eisa master accessing an 8-bit eisa or isa slave 32-bit readebe [ 3:0 ] y e 0000 113
82375eb/sb 290477 76 figure 32. copy witn re-drive: 32-bit eisa master accessing a 16-bit eisa or isa slave-one word writeebe [ 3:0 ] y e 0011 9.0 bios timer the pceb provides a system bios timer that decrements at each edge of its 1.03/1.04 mhz clock (derived from the 8.25/8.33 mhz bclk). since the state of the counter is undefined at power-up, the bios timer register must be programmed before it can be used. the timer can be enabled/disabled by writing to the bios timer address register. the bios timer register can be accessed as a single 16-bit quantity or as 32-bit quantity. for 32-bit access- es, the upper 16 bits are don't care (reserved). the bios timer i/o address location is software programma- ble. the address is determined by the value programmed into the btmr register and can be located on dword boundaries anywhere in the 64 kbyte pci i/o space. the bios timer clock has a frequency of 1.03 or 1.04 mhz, depending on the value of bclk (derived either from 25 mhz or 33 mhz pciclk). this allows time intervals to be counted from 0 to approximately 65 ms. the accuracy of the counter is g 1 m s. 9.1 bios timer operations a write operation (either 16-bit or 32-bit) to the bios timer register initiates the counting sequence. after initialization, the bios timer starts decrementing until it reaches zero. when the value in the timer reaches zero, the timer stops decrementing and register value remains at zero until the timer is re-initialized. after the timer is initialized, the current value can be read at any time. the timer can be re-programmed (new initial value written to the bios timer register) before the register value reaches zero. all write and read operations to the bios timer register should include all 16 counter bits. separate accesses to the individual bytes of the counter must be avoided since this can cause unexpected results (incorrect count intervals). 114
82375eb/sb 10.0 pceb/esc interface the pceb/esc interface (figure 33) provides the inter-chip communications between the pceb and esc. the interface provides control information between the two components for pci/eisa arbitration, data size translations (controlling the pceb's eisa data swap buffers), and interrupt acknowledge cycles. 290477 77 figure 33. pceb/esc interface signals 10.1 arbitration control signals the pceb contains the arbitration circuitry for the pci bus and the esc contains the arbitration circuitry for the eisa bus. the pceb/esc interface contains a set of arbitration control signals (eisahold, eisaholda, nmflush y , and pereq y /inta y ) that synchronize bus arbitration and ownership changes between the two bus environments. the signals also force pci device data buffer flushing, if needed, to maintain data coherency during eisa bus ownership changes. the pceb is the default owner of the eisa bus. if another eisa/isa master or dma wants to use the bus, the esc asserts eisahold to instruct the pceb to relinquish eisa bus ownership. the pceb completes any current eisa bus transaction, tri-states its eisa bus signals, and asserts eisaholda to inform the esc that the pceb is off the bus. for ownership changes, other than for a refresh cycle, the esc asserts the nmflush y signal to the pceb (for one pciclk) to instruct the pceb to flush its line buffers pointing to the pci bus (figure 34). the assertion of nmflush y also instructs the pceb to initiate flushing and to temporarily disable system buffers on the pci bus (via memreq y , memack y , and flshreq y ). the buffer flushing maintains data coheren- cy, in the event that the new eisa bus master wants to access the pci bus. buffer flushing also prevents dead-lock conditions between the pci bus and eisa bus. since the esc/pceb do not know ahead of time, whether the new master is going to access the pci bus or a device on the eisa bus, buffers pointing to the pci bus are always flushed when there is a change of eisa bus ownership, except for refresh cycles. for refresh cycles, the esc controls the cycle and, thus, knows that the cycle is not an access to the pci bus and does not initiate a flush request to the pceb. after a refresh cycle, the esc always surrenders control of the eisa bus back to the pceb. 115
82375eb/sb nmflush y is a bi-directional signal that is negated by the esc when buffer flushing is not being requested. the esc asserts nmflush y to request buffer flushing. when the pceb samples nmflush y asserted, it starts driving the signal in the asserted state and begins the buffer flushing process. (the esc tri-states nmflush y after asserting it for the initial 1 pciclk period.) the pceb keeps nmflush y asserted until all buffers are flushed and then it negates the signal for 1 pciclk. when the esc samples nmflush y negated, it starts driving the signal in the negated state, completing the handshake. when the esc samples nmflush y negated, it grants ownership to the winner of the eisa bus arbitration (at the time nmflush y was negated). note that for a refresh cycle, nmflush y is not asserted by the esc. 290477 78 figure 34. nmflush y protocol when the eisa master completes its transfer and gets off the bus (i.e., removes its request to the esc), the esc negates eisahold and the pceb, in turn, negates eisaholda. at this point, the pceb resumes its default ownership of the eisa bus. if a pci master requests access to the eisa bus while the bus is owned by a master other than the pceb, the pceb retries the pci cycle and requests ownership of the eisa bus by asserting pereq y /inta y to the esc. pereq y /inta y is a dual function signal that is a pceb request for the eisa bus (pereq y function) when eisaholda is asserted. in response to the pceb request for eisa bus ownership, the esc removes the grant to the eisa master. when the eisa master completes its current transactions and relinquishes the bus (removes its bus request), the esc negates eisahold and the pceb, in turn, negates eisaholda. at this point, a grant can be given to the pci device for a transfer to the eisa bus. note that the inta y function of the pereq y /inta y signal is described in section 10.3, interrupt acknowledge control. 116
82375eb/sb 10.2 system buffer coherency control-apic during an interrupt sequence, the system buffers must be flushed before the esc's i/o apic can send an interrupt message to the local apic (cpu's apic). the esc and pceb maintain buffer coherency when the esc receives an interrupt request for its i/o apic using the aflush y signal. 10.3 power management (82375SB) in response to the 82375SB esc's stpclk y assertion, the cpu sends out a stop grant bus cycle to indicate that it has entered the stop grant state. the pceb uses the stpgnt y signal to inform the esc of the stop grant cycle. 10.4 eisa data swap buffer control signals the cycles in the eisa environment may require data size translations before the data can be transferred to its intermediate or final destination. as an example, a 32-bit eisa master write cycle to a 16-bit eisa slave requires a disassembly of a 32-bit dword into 16-bit words. similarly, a 32-bit eisa master read cycle to a 16- bit slave requires an assembly of two 16 bit words into a 32-bit dword. the pceb contains eisa data swap buffers to support data size translations on the eisa bus. the operation of the data swap buffers is described in section 8.0, eisa data swap buffers. the esc controls the operation of the pceb's data swap buffers with the following pceb/esc interface signals. these signals are outputs from the esc and an inputs to the pceb. # sdcpyen [ 13,03:01 ] y # sdcpyup # sdoe [ 2:0 ] y # sdle [ 3:0 ] y copy enable outputs (sdcpyen [ 13,03:01 ] y ) these signals enable the byte copy operations between data byte lanes 0, 1, 2 and 3 as shown in the table 9. isa master cycles do not perform assembly/disassembly operations. thus, these cycles use sdcpyen [ 13,03:01 ] y to perform the byte routing and byte copying between lanes. eisa master cycles however, can have assembly/ disassembly operations. these cycles use sdcpyen [ 13,03:01 ] y in conjunc- tion with sdcpyup and sdle [ 3:0 ] y . table 9. byte copy operations signal copy between byte lanes sdcpyen01 y byte 0 (bits [ 7:0 ] ) and byte 1 (bits [ 15:8 ] ) sdcpyen02 y byte 0 (bits [ 7:0 ] ) and byte 2 (bits [ 23:16 ] ) sdcpyen03 y byte 0 (bits [ 7:0 ] ) and byte 3 (bits [ 31:24 ] ) sdcpyen13 y byte 1 (bits [ 15:8 ] ) and byte 3 (bits [ 31:24 ] ) system data copy up (sdcpyup) sdcpyup controls the direction of the byte copy operations. when sdcpyup is asserted (high), active lower bytes are copied onto the higher bytes. the direction is reversed when sdcpyup is negated (low). 117
82375eb/sb system data output enable (sdoe [ 2:0 ] y ) these signals enable the output of the data swap buffers onto the eisa bus (table 10). sdoe [ 2:0 ] are re- drive signals in case of mis-matched cycles between eisa to eisa, eisa to isa, isa to isa and the dma cycles between the devices on eisa. table 10. output enable operations signal byte lane sdoe0 y applies to byte 0 (bits [ 7:0 ] ) sdoe1 y applies to byte 1 (bits [ 15:8 ] ) sdoe2 y applies to byte 2 and byte 3 (bits [ 31:16 ] ) system data to internal (pceb) data latch enables (sdle [ 3:0 ] y ) these signals latch the data from the eisa bus into the data swap latches. the data is then either sent to the pci bus via the pceb or re-driven onto the eisa bus. sdle [ 3:0 ] y latch the data from the corresponding eisa bus byte lanes during pci reads from eisa, eisa writes to pci, dma cycles between an eisa device and the pceb. these signals also latch data during mismatched cycles between eisa to eisa, eisa to isa, isa to isa, the dma cycles between the devices on eisa, and any cycles that require copying of bytes, as opposed to copying and assembly/disassembly. 10.5 interrupt acknowledge control pereq y /inta y (pci to eisa request or interrupt acknowledge) is a dual function signal and the selected function depends on the status of eisahlda. when eisahlda is negated, this signal is an interrupt acknowl- edge (inta y ) and supports interrupt processing. if interrupt acknowledge is enabled via the pceb's pcicon register and eisaholda is negated, the pceb asserts pereq y /inta y when a pci interrupt acknowledge cycle is being serviced. this informs the esc that the forwarded eisa i/o read from location 04h is an interrupt acknowledge cycle. thus, the esc uses this signal to distinguish between a request for the interrupt vector and a read of the esc's dma register located at 04h. the esc responds to the read request by placing the interrupt vector on sd [ 7:0 ] . 11.0 electrical characteristics 11.1 absolute maximum ratings case temperature under bias b 65 cto110 c storage temperature b 65 cto150 c supply voltages with respect to ground b -0.5v to v cc a 0.5v voltage on any pin b -0.5v to v cc a 0.5v power dissipation (fully loaded) 0.95w power dissipation (four slots) 0.75w notice: this data sheet contains information on products in the sampling and initial production phases of development. the specifications are subject to change without notice. verify with your local intel sales office that you have the latest data sheet be- fore finalizing a design. * warning: stressing the device beyond the ``absolute maximum ratings'' may cause permanent damage. these are stress ratings only. operation beyond the ``operating conditions'' is not recommended and ex- tended exposure beyond the ``operating conditions'' may affect device reliability. 118
82375eb/sb 12.0 pinout and package information 12.1 pin assignment 290477 97 figure 35. pinout 119
82375eb/sb table 11. alphabetical pceb pin assignment name pin y type ad0 155 t/s ad1 154 t/s ad2 153 t/s ad3 152 t/s ad4 151 t/s ad5 150 t/s ad6 148 t/s ad7 147 t/s ad8 146 t/s ad9 143 t/s ad10 142 t/s ad11 141 t/s ad12 139 t/s ad13 138 t/s ad14 137 t/s ad15 136 t/s ad16 119 t/s ad17 118 t/s ad18 117 t/s ad19 115 t/s ad20 114 t/s ad21 112 t/s ad22 111 t/s ad23 110 t/s ad24 108 t/s ad25 107 t/s ad26 102 t/s ad27 101 t/s ad28 100 t/s ad29 99 t/s ad30 98 t/s name pin y type ad31 97 t/s aflush y 161 t/s bclk 167 in be0 y 207 t/s be1 y 206 t/s be2 y 205 t/s be3 y 204 t/s c/be0 y 144 t/s c/be1 y 135 t/s c/be2 y 120 t/s c/be3 y 109 t/s cmd y 169 in cpugnt y 76 out cpureq y 75 in devsel y 125 s/t/s eisahlda 163 out eisahold 162 in ex16 y 173 in ex32 y 172 o/d exrdy 171 o/d flshreq y 85 out frame y 122 s/t/s gnt0 y 83 out gnt1 y 82 out gnt2 y 81 out gnt3 y 80 out idsel 92 in io16 y 168 o/d irdy y 123 s/t/s la2 33 t/s la3 31 t/s la4 29 t/s 120
82375eb/sb table 11. alphabetical pceb pin assignment (continued) name pin y type la5 28 t/s la6 24 t/s la7 23 t/s la8 22 t/s la9 21 t/s la10 20 t/s la11 19 t/s la12 17 t/s la13 16 t/s la14 15 t/s la15 13 t/s la16 12 t/s la17 45 t/s la18 43 t/s la19 40 t/s la20 36 t/s la21 34 t/s la22 32 t/s la23 30 t/s la24 11 t/s la25 10 t/s la26 8 t/s la27 7 t/s la28 6 t/s la29 5 t/s la30 4 t/s la31 3 t/s lock y 166 t/s m/io y 191 t/s memack y 86 in memcs y 88 out memreq y 87 out name pin y type msburst y 190 t/s nc 96 nc nc 106 nc nc 132 nc nc 133 nc nmflush y 165 t/s par 134 t/s pciclk 91 in pcirst y 93 in pereq y /inta y 164 out perr y 128 s/t/s piodec y 89 in plock y 127 s/t/s refresh y 160 in req0 y 71 in req1 y 72 in req2 y 73 in req3 y 74 in sd0 203 t/s sd1 202 t/s sd2 201 t/s sd3 199 t/s sd4 198 t/s sd5 197 t/s sd6 196 t/s sd7 195 t/s sd8 55 t/s sd9 57 t/s sd10 60 t/s sd11 61 t/s sd12 65 t/s sd13 67 t/s 121
82375eb/sb table 11. alphabetical pceb pin assignment (continued) name pin y type sd14 69 t/s sd15 70 t/s sd16 37 t/s sd17 38 t/s sd18 41 t/s sd19 42 t/s sd20 44 t/s sd21 47 t/s sd22 48 t/s sd23 49 t/s sd24 50 t/s sd25 51 t/s sd26 56 t/s sd27 58 t/s sd28 59 t/s sd29 64 t/s sd30 66 t/s sd31 68 t/s sdcpyen01 y 179 in sdcpyen02 y 180 in sdcpyen03 y 184 in sdcpyen13 y 185 in sdcpyup 186 in sdle0 y 178 in sdle1 y 177 in sdle2 y 176 in sdle3 y 175 in sdoe0 y 187 in sdoe1 y 188 in sdoe2 y 189 in slburst y 174 t/s start y 170 t/s name pin y type stop y 126 s/t/s stpgnt y 159 out test y 90 in trdy y 124 s/t/s v dd 1v v dd 14 v v dd 25 v v dd 39 v v dd 52 v v dd 53 v v dd 63 v v dd 79 v v dd 94 v v dd 104 v v dd 105 v v dd 116 v v dd 131 v v dd 145 v v dd 156 v v dd 157 v v dd 181 v v dd 193 v v dd 208 v v ss 2v v ss 9v v ss 18 v v ss 26 v v ss 27 v v ss 35 v v ss 46 v v ss 54 v v ss 62 v 122
82375eb/sb table 11. alphabetical pceb pin assignment (continued) name pin y type v ss 77 v v ss 78 v v ss 84 v v ss 95 v v ss 103 v v ss 113 v v ss 121 v v ss 129 v v ss 130 v name pin y type v ss 140 v v ss 149 v v ss 158 v v ss 182 v v ss 183 v v ss 194 v v ss 200 v w/r y 192 t/s table 12. numerical pceb pin assignment pin y name type 1v dd v 2v ss v 3 la31 t/s 4 la30 t/s 5 la29 t/s 6 la28 t/s 7 la27 t/s 8 la26 t/s 9v ss v 10 la25 t/s 11 la24 t/s 12 la16 t/s 13 la15 t/s 14 v dd v 15 la14 t/s 16 la13 t/s 17 la12 t/s 18 v ss v 19 la11 t/s 20 la10 t/s 21 la9 t/s pin y name type 22 la8 t/s 23 la7 t/s 24 la6 t/s 25 v dd v 26 v ss v 27 v ss v 28 la5 t/s 29 la4 t/s 30 la23 t/s 31 la3 t/s 32 la22 t/s 33 la2 t/s 34 la21 t/s 35 v ss v 36 la20 t/s 37 sd16 t/s 38 sd17 t/s 39 v dd v 40 la19 t/s 41 sd18 t/s 42 sd19 t/s 43 la18 t/s 123
82375eb/sb table 12. numerical pceb pin assignment (continued) pin y name type 44 sd20 t/s 45 la17 t/s 46 v ss v 47 sd21 t/s 48 sd22 t/s 49 sd23 t/s 50 sd24 t/s 51 sd25 t/s 52 v dd v 53 v dd v 54 v ss v 55 sd8 t/s 56 sd26 t/s 57 sd9 t/s 58 sd27 t/s 59 sd28 t/s 60 sd10 t/s 61 sd11 t/s 62 v ss v 63 v dd v 64 sd29 t/s 65 sd12 t/s 66 sd30 t/s 67 sd13 t/s 68 sd31 t/s 69 sd14 t/s 70 sd15 t/s 71 req0 y in 72 req1 y in 73 req2 y in 74 req3 y in 75 cpureq y in pin y name type 76 cpugnt y out 77 v ss v 78 v ss v 79 v dd v 80 gnt3 y out 81 gnt2 y out 82 gnt1 y out 83 gnt0 y out 84 v ss v 85 flshreq y out 86 memack y in 87 memreq y out 88 memcs y out 89 piodec y in 90 test y in 91 pciclk in 92 idsel in 93 pcirst y in 94 v dd v 95 v ss v 96 nc nc 97 ad31 t/s 98 ad30 t/s 99 ad29 t/s 100 ad28 t/s 101 ad27 t/s 102 ad26 t/s 103 v ss v 104 v dd v 105 v dd v 106 nc nc 107 ad25 t/s 124
82375eb/sb table 12. numerical pceb pin assignment (continued) pin y name type 108 ad24 t/s 109 c/be3 y t/s 110 ad23 t/s 111 ad22 t/s 112 ad21 t/s 113 v ss v 114 ad20 t/s 115 ad19 t/s 116 v dd v 117 ad18 t/s 118 ad17 t/s 119 ad16 t/s 120 c/be2 y t/s 121 v ss v 122 frame y s/t/s 123 irdy y s/t/s 124 trdy y s/t/s 125 devsel y s/t/s 126 stop y s/t/s 127 plock y s/t/s 128 perr y s/t/s 129 v ss v 130 v ss v 131 v dd v 132 nc nc 133 nc nc 134 par t/s 135 c/be1 y t/s 136 ad15 t/s 137 ad14 t/s 138 ad13 t/s 139 ad12 t/s pin y name type 140 v ss vv 141 ad11 t/s 142 ad10 t/s 143 ad9 t/s 144 c/be0 y t/s 145 v dd v 146 ad8 t/s 147 ad7 t/s 148 ad6 t/s 149 v ss v 150 ad5 t/s 151 ad4 t/s 152 ad3 t/s 153 ad2 t/s 154 ad1 t/s 155 ad0 t/s 156 v dd v 157 v dd v 158 v ss v 159 stpgnt y out 160 refresh y in 161 aflush y t/s 162 eisahold in 163 eisahlda out 164 pereq y /inta y out 165 nmflush y t/s 166 lock y t/s 167 bclk in 168 io16 y o/d 169 cmd y in 170 start y t/s 171 exrdy o/d 125
82375eb/sb table 12. numerical pceb pin assignment (continued) pin y name type 172 ex32 y o/d 173 ex16 y in 174 slburst y t/s 175 sdle3 y in 176 sdle2 y in 177 sdle1 y in 178 sdle0 y in 179 sdcpyen01 y in 180 sdcpyen02 y in 181 v dd v 182 v ss v 183 v ss v 184 sdcpyen03 y in 185 sdcpyen13 y in 186 sdcpyup in 187 sdoe0 y in 188 sdoe1 y in 189 sdoe2 y in 190 msburst y t/s pin y name type 191 m/io y t/s 192 w/r y t/s 193 v dd v 194 v ss v 195 sd7 t/s 196 sd6 t/s 197 sd5 t/s 198 sd4 t/s 199 sd3 t/s 200 v ss v 201 sd2 t/s 202 sd1 t/s 203 sd0 t/s 204 be3 y t/s 205 be2 y t/s 206 be1 y t/s 207 be0 y t/s 208 v dd v 126
82375eb/sb 12.2 package characteristics 290477 98 figure 36. 208-pin quad flat pack (qfp) dimensions 127
82375eb/sb 13.0 testability 13.1 nand tree a nand tree is provided primarily for vil/vih testing. the nand tree is also useful for automated test equipment (ate) at board level testing. the nand tree allows the tester to test the solder connections for each individual signal pin. the test y pin, along with bclk, piodec y and ex16 y , activates the nand tree. the following combina- tions of piodec y , ex16 y , and test y causes each buffer to be tri-stated.: piodec y e 1 and ex16 y e 0 and test y e 0 or piodec y e 0 and ex16 y e 1 care must be taken as the test is in progress to ensure that one of the preceding combinations is valid. otherwise, the test mode will be exited. asserting test y causes the output pulse train to appear on the eisahlda pin. bclk must be driven low in order to enable the nand tree. the sequence of the ate test is as follows: 1. drive test y low, ex16 y high, piodec y low, and bclk low. 2. drive each pin high, except for the pins mentioned in the above discussion (test y , piodec y , and bclk). 3. starting at pin 168 (io16 y ) and continuing with pins 169, 170, etc., individually drive each pin low, remem- bering to toggle piodec y from low to high when ex16 y is toggled from high to low. also, when piodec y is driven low, ex16 y must be driven high. expect eisahlda to toggle after each corresponding input pin is toggled. the final pin in the tree is pin 166 (lock y ). bclk is not part of the tree, and eisahlda is operated only as an output. also, note that no-connect (nc), vcc, and vxx pins are not part of the nand tree. 4. turn off tester drivers before enabling the pceb's buffers (via piodec y , test y , and ex16 y ). 5. reset the pceb prior to proceeding with further testing. 128
82375eb/sb table 13. nand tree cell order pin y name 168 io16 y (1) 169 cmd y 170 start 171 exrdy 172 ex32 y 173 ex32 y 174 slburst y 175 sdle3 y 176 sdle2 y 177 sdle1 y 178 sdle0 y 179 sdcpyen01 y 180 sdcpyen02 y 184 sdcpyen03 y 185 sdcpyen13 y 186 sdcpyup 187 sdoe0 y 188 sdoe1 y 189 sdoe2 y 190 msburst y 191 m/io y 192 w/r y 195 sd7 196 sd6 197 sd5 198 sd4 199 sd3 201 sd2 202 sd1 203 sd0 204 be3 y pin y name 205 be2 y 206 be1 y 207 be0 y 3 la31 y 4 la30 y 5 la29 y 6 la28 y 7 la27 y 8 la26 y 10 la25 y 11 la24 y 12 la16 13 la15 15 la14 16 la13 17 la12 18 v ss 19 la11 20 la10 21 la9 22 la8 23 la7 24 la6 28 la5 29 la4 30 la23 31 la3 32 la22 33 la2 34 la21 36 la20 37 sd16 pin y name 38 sd17 40 la19 41 sd18 42 sd19 43 la18 44 sd20 45 la17 47 sd21 48 sd22 49 sd23 50 sd24 51 sd25 55 sd8 56 sd26 57 sd9 58 sd27 59 sd28 60 sd10 61 sd11 64 sd29 65 sd12 66 sd30 67 sd13 68 sd31 69 sd14 70 sd15 71 req0 y 72 req1 y 73 req2 y 74 req3 y 75 cpureq y 76 cpugnt 129
82375eb/sb table 13. nand tree cell order pin y name 80 gnt3 y 81 gnt2 y 82 gnt1 y 83 gnt0 y 85 flshreq y 86 memack y 87 memreq y 88 memcs y 89 piodec y (3) 91 pciclk 92 idsel 93 pcirst y 97 ad31 98 ad30 99 ad29 100 ad28 101 ad27 102 ad26 107 ad25 108 ad24 109 c/be3 y pin y name 110 ad23 111 ad22 112 ad21 114 ad20 115 ad19 117 ad18 118 ad17 119 ad16 120 c/be2 y 122 frame y 123 irdy y 124 trdy y 125 devsel y 126 stop y 127 plock y 128 perr y 134 par 135 c/be1 y 136 ad15 137 ad14 138 ad13 pin y name 139 ad12 141 ad11 142 ad10 143 ad9 144 c/be0 y 146 ad6 147 ad7 148 ad6 150 ad5 151 ad4 152 ad3 153 ad2 154 ad1 155 ad0 160 refresh y 161 aflush y 162 eisahold 164 pereq y /inta y 165 nmflush y 166 lock y notes: 1.start of nand tree. 2.must be 1 when piodec y is 0 and must be 0 when piodec y is 1. 3.must be 0 when ex16 y is 1 and must be 1 when ex16 y is 0. 130
82375eb/sb 290477 a0 figure 37. nand tree 131


▲Up To Search▲   

 
Price & Availability of 82375SB

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X